Упаковывать и распространять приложение QtRuby как драгоценный камень? Или как?
Я закончил разработку настольного приложения Ruby с графическим интерфейсом, которое использует Qt через гем qtbindings, и мне нужно выпустить его с некоторыми требованиями:
- Пользователь не должен ничего собирать или компилировать, особенно библиотеки Qt, установка Ruby и Rubygems - это нормально, но не более
- Он должен работать на Mac и Windows, Linux тоже желательно
Я пробовал tar2rubyscript и rubyscript2exe, но потерпел неудачу из-за некоторых загадочных ошибок, как я описал в списке рассылки KDE-bindings
Полезный парень на IRC-канале #qtruby предложил мне собрать его как драгоценный камень и выпустить. Я пытался сделать это, но моя проблема в том, как я могу связать qtbindings со статической библиотекой Qt? Я создал gemspec и использовал упаковщик, но он строится на собственных библиотеках / заголовках разработки Qt... и у моих пользователей этого не будет.
Итак, мои вопросы, опять же:
- Могу ли я использовать драгоценный камень для этого? Если так, как я могу заставить пользователя создавать qtbindings для статической библиотеки Qt, которую я предоставляю?
- Знаете ли вы какой-либо другой способ упаковать приложение qtruby? Вы делали это?
1 ответ
Я много занимался разработкой в Qt, но все еще изучаю Ruby и QtRuby, так что, пожалуйста, отнеситесь к этому с недоверием.
Я бы не стал использовать гемный маршрут и попытался бы упаковать его так же, как коммерческое приложение Qt, над которым я работал.
Один пакет, включающий все для программы, должен быть запущен. Это может включать в себя привязки Qt4 Ruby и библиотеки Qt, а также все остальное, что вам нужно для его запуска, но оно не включено [установка Windows vanilla / установка MacOS vanilla / наиболее часто поддерживаемая стандартная база Linux] с возможным исключением интерпретатора Ruby. само по себе.
Оберните ваше приложение в сценарий, чтобы настроить LD_LIBRARY_PATH и другие переменные среды, чтобы убедиться, что все работает с динамическими библиотеками, которые вы поставляете, но не установлены на целевой Linux. В Windows просто оставьте их (динамические библиотеки) в главной главной папке, хотя вы также можете перейти к сценарию маршрута. Я никогда не развертывался на Mac, поэтому не знаю, но могу представить, что он похож на маршрут Linux.
Я знаю, что это не элегантно, но, по крайней мере, это работает.