Как собрать приложение для Linux - PullRequest
8 голосов
/ 26 апреля 2011

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

Традиционно предоставлять приложение в виде пакета (.deb и .rpm) и разрешить системе пакетов разрешить зависимости.Следует использовать этот метод?Если да, то к каким дистрибутивам я должен стремиться (я предполагаю Ubuntu и Fedora)?Если у кого-то есть опыт с этим, мне было бы интересно услышать это.

Ответы [ 3 ]

3 голосов
/ 26 апреля 2011

deb, rpm и tarballs - верные пути.Я знаю несколько нестандартных способов, о которых вы, возможно, захотите также подумать, которые более дистро-независимы.

  • Makeself - Самораспаковывающиеся сценарии оболочки, содержащие ваше приложение.Это довольно широко используется распространителями программного обеспечения с закрытым исходным кодом.
  • ZeroInstall - полезно для установок без полномочий root.
  • Listaller - Объединено с автоматической установкой, и оно кажется нестабильным на данный момент.
2 голосов
/ 26 апреля 2011

Вам необходимо предоставить как минимум 3 пакета для Linux;.deb для систем на основе Debian, .rpm для систем на основе RPM и tarball для всего остального.Некоторые считают необходимым усовершенствовать его, чтобы предоставить три или четыре различных пакета .rpm для Fedora, SuSE, Mandriva и RHEL, в зависимости от конкретных требований к библиотеке, предъявляемых программным обеспечением.

0 голосов
/ 10 января 2012

Есть много способов сделать это ... но если вам нужен общий способ распространения приложения для Linux, вы можете проверить этот (http://codevarium.gameka.com.br/deploying-cc-linux-applications-supporting-both-32-bit-and-64-bit/) учебник. В нем показано, как скопировать все зависимости в папку библиотеки и создать сценарий оболочки для правильного выполнения пакета.

...