Упаковывать и распространять приложение QtRuby как драгоценный камень? Или как?

Я закончил разработку настольного приложения Ruby с графическим интерфейсом, которое использует Qt через гем qtbindings, и мне нужно выпустить его с некоторыми требованиями:

  1. Пользователь не должен ничего собирать или компилировать, особенно библиотеки Qt, установка Ruby и Rubygems - это нормально, но не более
  2. Он должен работать на Mac и Windows, Linux тоже желательно

Я пробовал tar2rubyscript и rubyscript2exe, но потерпел неудачу из-за некоторых загадочных ошибок, как я описал в списке рассылки KDE-bindings

Полезный парень на IRC-канале #qtruby предложил мне собрать его как драгоценный камень и выпустить. Я пытался сделать это, но моя проблема в том, как я могу связать qtbindings со статической библиотекой Qt? Я создал gemspec и использовал упаковщик, но он строится на собственных библиотеках / заголовках разработки Qt... и у моих пользователей этого не будет.

Итак, мои вопросы, опять же:

  1. Могу ли я использовать драгоценный камень для этого? Если так, как я могу заставить пользователя создавать qtbindings для статической библиотеки Qt, которую я предоставляю?
  2. Знаете ли вы какой-либо другой способ упаковать приложение qtruby? Вы делали это?

1 ответ

Я много занимался разработкой в ​​Qt, но все еще изучаю Ruby и QtRuby, так что, пожалуйста, отнеситесь к этому с недоверием.

Я бы не стал использовать гемный маршрут и попытался бы упаковать его так же, как коммерческое приложение Qt, над которым я работал.

Один пакет, включающий все для программы, должен быть запущен. Это может включать в себя привязки Qt4 Ruby и библиотеки Qt, а также все остальное, что вам нужно для его запуска, но оно не включено [установка Windows vanilla / установка MacOS vanilla / наиболее часто поддерживаемая стандартная база Linux] с возможным исключением интерпретатора Ruby. само по себе.

Оберните ваше приложение в сценарий, чтобы настроить LD_LIBRARY_PATH и другие переменные среды, чтобы убедиться, что все работает с динамическими библиотеками, которые вы поставляете, но не установлены на целевой Linux. В Windows просто оставьте их (динамические библиотеки) в главной главной папке, хотя вы также можете перейти к сценарию маршрута. Я никогда не развертывался на Mac, поэтому не знаю, но могу представить, что он похож на маршрут Linux.

Я знаю, что это не элегантно, но, по крайней мере, это работает.

Другие вопросы по тегам