Есть ли какие-нибудь USB-флешки, которые можно запускать, не устанавливать, кроссплатформенные программные платформы (с графическим интерфейсом)? - PullRequest
10 голосов
/ 17 мая 2009

Кто-нибудь знает о хорошей среде разработки программного обеспечения или аналогичной, которая имеет следующие свойства?

  • Кроссплатформенность: он должен быть запущен в XP, Vista, OSX и распространенных версиях Linux (таких как Ubuntu и Kubuntu).
  • Без установки: возможность запуска программного обеспечения с USB-накопителя без необходимости что-либо копировать на хост-компьютер.
  • Иметь хорошую поддержку графического интерфейса (вот почему этот вопрос , насколько я могу судить, не дает подходящего ответа).
  • Разрешительное лицензирование, такое как LGPL или BSD или подобное.

Среди более мягких требований - наличие набора абстракций для наиболее распространенных внутренних функций, таких как сокеты, файловый ввод-вывод и т. Д. (Обычно требуются некоторые специфические для платформы адаптации), и поддержка хорошего языка, такого как Python или C ++, хотя обычно забавно изучать новый (т.е. не perl).

Я думаю, что возможные кандидаты - Qt 4.5 или выше (но программное обеспечение IFAIK Qt не будет работать в Vista без какой-либо установки (?)), Некоторых wxWidgets или, возможно, решения wxPython, возможно, gtkmm. Приведенные мною примеры не соответствовали тем или иным требованиям. Это не значит, что таких примеров не существует, это просто означает, что я их не нашел. Поэтому мне было интересно, если кто-нибудь там знает какие-либо существующие решения для этого?

Некоторые уточнения;

  • Под "фреймворком" я подразумеваю что-то вроде Qt или gtkmm или python с пакетом виджетов.
  • Речь идет о возможности запуска готового продукта на нескольких платформах с флешки без установки, речь не идет о переносимой среде разработки.
  • Это не загрузочная флешка.
  • Можно при необходимости создавать программное обеспечение специально для различных целей.

Случай использования, который я вижу, состоит в том, что у вас есть какое-то программное обеспечение, на которое вы полагаетесь (например, планирование проекта, администрирование информации, инструменты анализа или подобное), которое:

  • не предполагает наличия подключения к Интернету.
  • запускается на разных хост-машинах, где не совсем нормально устанавливать что-либо.
  • перемещается пользователем с помощью физического носителя (например, USB-накопителя).
  • работает в разных операционных системах, таких как Windows, Vista, Ubuntu, OSX.
  • работает на одних и тех же данных на этих разных хостах (данные могут храниться на хосте или на флешке).
  • на самом деле не ограничен в том, насколько велика интегрированная структура (если только это не несколько гигабайт, что не совсем реально).

Также возможно иметь параллельные установки на флешке, если программное обеспечение ведет себя одинаково и может работать с одними и теми же данными при запуске на разных целях.

Другое мнение о сценарии использования будет состоять в том, что передо мной стоят пять недавно установленных машин с Vista, XP, OSX, Ubuntu и Kubuntu соответственно. Я хотел бы, чтобы без необходимости устанавливать что-то новое на машины, можно было запускать одно и то же программное обеспечение с одной карты памяти USB (отвечающей вышеуказанным требованиям графического интерфейса и т. Д.) На каждой из этих пяти машин (хотя, при необходимости, с разных пачки на палочке).

Возможно ли это?

Edit: Я немного поэкспериментировал с приложением Qt, которое использует некоторые виджеты и базу данных sqlite. Было легко заставить его работать на Ubuntu Dist и OSX. Для Windows XP и Vista мне пришлось скопировать QtCored4.dll, QtGuid4.dll, QtSqld4.dll и mingwm10.dll в каталог дистрибутива (это был код отладки), и я скопировал qsqlited4.dll в папку с именем «sqldrivers» в дистрибутиве каталог.

Ответы [ 8 ]

4 голосов
/ 17 мая 2009

Java.

  • Имеет поддержку графического интерфейса.

  • Предоставляет вашу сеть / файл / и т.д. абстракции.

  • Это кроссплатформенный. Большинство платформ, о которых вы можете подумать, имеют JRE.

  • Нет необходимости устанавливать JRE. У большинства пользователей, вероятно, уже есть один, и если нет, вы можете запустить соответствующую JRE прямо с флешки.

  • Вы можете предоставить несколько сценариев запуска для различных платформ, чтобы запустить приложение под соответствующей JRE.

4 голосов
/ 17 мая 2009

Вы упоминаете wxWidgets , но отклоняете его как невыполнение хотя бы одного из требований.

Я не знаю, каковы ваши требования и каким образом wxWidgets не будет работать для вас, но IMO выполняет их:

Кроссплатформенность: она должна работать на XP, Vista, OSX и распространенных версиях Linux.

Он работает на этих платформах, но «общие версии Linux» не достаточно хороши, так как вы никогда не можете быть уверены, что будут установлены необходимые библиотеки GUI для wxGTK (которые не должны быть связаны статически). Это, однако, проблема и для других решений, если только вы не планируете положить все на флешку.

Без установки: возможность запуска программного обеспечения с USB-накопителя без необходимости что-либо копировать на хост-компьютер.

Смотри предыдущий пункт, вам нужно будет указать, какие библиотеки нужны в Linux. Также вы можете указать во время сборки не использовать некоторые из предоставленных системой библиотек (например, для графики, сжатия, регулярных выражений), но вместо этого использовать библиотеки wxWidgets-internal.

Хорошая поддержка графического интерфейса

Проверьте.

Разрешительное лицензирование, такое как LGPL или BSD или подобное.

Проверьте. Вы также можете статически связать wxWidgets с вашим приложением.

с поддержкой хорошего языка, такого как Python или C ++

Поддерживает оба, а также есть привязки к другим языкам.

с набором абстракций для наиболее распространенных внутренних функций, таких как сокеты, файловый ввод-вывод и т. Д.

В нем есть некоторые подобные абстракции, но вы также можете ссылаться и на другие кроссплатформенные библиотеки.

Мы используем wxWidgets для FlameRobin , графической программы администрирования для сервера Firebird SQL. Он имеет активные порты для Windows, Linux и Mac OS X и скомпилирован по крайней мере для некоторых вариантов BSD и Solaris. Он определенно запускается с флешки в Windows, я не пробовал с Linux или Mac OS X, но я не понимаю, почему этого тоже не должно быть.

3 голосов
/ 17 мая 2009

Что еще нужно рассмотреть, это HTML + Javascript. : D

2 голосов
/ 17 мая 2009

Вы можете посмотреть Mono , он кроссплатформенный, имеет графический интерфейс (GTK + или Winforms 2.0), и я могу выполнить код без установки.

1 голос
/ 17 мая 2009

Это может быть не кроссплатформенная, но, может быть, даже лучше, она даже не использует платформу: linux на палочке: -)

Подзаголовок

Переносите рабочие пространства Java куда угодно, используя USB-ключ

Здесь с java и затмением, но, конечно, вас ничто не останавливает.

http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#

0 голосов
/ 26 января 2010

Tclkit - это отдельная файловая, автономная система Tcl / Tk. Mac версия у меня около 3,8 мегабайт. Вы можете получить версию практически для любой современной ОС. Я ношу с собой флеш-накопитель, на котором установлены Mac, Windows и Linux, чтобы я мог запускать свои скрипты на любой платформе. Установка не требуется, просто скопируйте один файл куда хотите.

В последних версиях tcklit используются нативные тематические виджеты (хотя в * nix действительно нет ни одного «нативного» набора виджетов ...)

0 голосов
/ 17 июня 2009

Я задавал похожий вопрос по этой ссылке http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html и лучший ответ, кажется, QT.

Я начал использовать QT, но это не так просто, как я ожидал, в основном из-за проблем с развертыванием из-за ада DLL, ада Winsxs и ада манифеста.

0 голосов
/ 17 мая 2009

Ну, это зависит от того, что вы подразумеваете под «пакетом». Kylix был близок к тому, чтобы быть таким. Он был основан на QT и позволял вам писать один раз и компилировать для Windows + Linux. Однако это не было решением с открытым исходным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...