Распространение программы в Linux без исходного кода

StackOverflow https://stackoverflow.com/questions/1068530

Вопрос

Я хочу иметь возможность распространять программу в Linux, не распространяя исходный код вместе с ней.Текущее решение заключается в распространении a tar.gz с предварительно скомпилированным двоичным файлом.Какой самый простой способ разместить этот двоичный файл в меню приложений?Есть ли способ сделать это, который является общим для большинства дистрибутивов Linux, но приоритетными были бы Ubuntu, Fedora и openSUSE?

Это было полезно?

Решение

Вы захотите создать .deb и .rpm.Первый охватывает Ubuntu (варианты Debian), а второй - Red Hat.Вы также можете предоставить автономный исполняемый файл для других пользователей, которые сами могут работать с такими вещами, как меню.

Вам придется иметь дело с управлением меню Gnome и KDE, а также с тем, что разные дистрибутивы по-разному размещают свои меню.Существует также проблема с вариантами нетбуков, такими как Moblin, которые имеют интерфейс нетбука, который, вероятно, имеет свой собственный механизм "добавить приложение".Я не знаю, возможно ли, чтобы один файл .deb обрабатывал обе системы меню Gnome и KDE (для Ubuntu и Kubuntu соответственно), но я полагаю, что существует возможность уменьшить дублирование усилий для Ubuntu.

Другие советы

Все последние дистрибутивы следует иметь xdg-utils установлен, который предоставляет такие скрипты, как

  • xdg-значок на рабочем столе
  • xdg-рабочий стол-меню

которые, похоже, и есть то, что вы ищете.

В последнее время я этим не занимался...но в те далекие времена (которые на самом деле были не так уж давно), когда я использовал Linux, RPM был самым простым способом распространения предварительно скомбинированных двоичных файлов (большинство дистрибутивов имели и до сих пор имеют какую-то поддержку пакетов RPM).

Вот старое руководство по созданию пакета RPM:

Linux Онлайн - Практическое руководство по RPM

Вы могли бы посмотреть на Инталлер BitRock.

Попробуй Автоматическая упаковка или другие решения, опубликованные в другом вопрос.

Выполните tar.gz а затем предоставьте сообществу права на распространение измененных пакетов.Они будут создавать RPM, DEBS и любые другие пакеты для своих любимых дистрибутивов...который, вероятно, подойдет к их дистрибутивам гораздо лучше, чем вы когда-либо могли бы создать.

На самом деле существует слишком много различий между дистрибутивами, чтобы создать универсальный пакет, часто незначительных.Например, в некоторых дистрибутивах есть раздел "Приложение", в других - "Приложениеs"...и это привело к исчезновению пунктов меню в некоторых дистрибутивах.Библиотеки могут быть разными, настройки по умолчанию могут быть разными и так далее...

RPM и DEBS не так портативны, как принято считать.С одним пакетом могут возникнуть проблемы даже с разными версиями одного дистрибутива, и нет ничего хуже, чем бороться за правильную установку плохо подготовленного пакета.

Джиби прав, что вы хотели бы использовать .deb или .rpm.

Для Ubuntu / Debian (.deb) я бы добавил, что вы не отправляете его людям, но создаете "репозиторий" и просите пользователей добавить этот URL в свой /etc/ apt/sources.list, тогда вы также получаете простой способ обновить программное обеспечение.

Таким образом, вы решаете проблему распространения и обновления одновременно.

И вот пример того, как это могло бы выглядеть:

И как могло бы выглядеть хранилище:

Но не повторяйте ошибку Atmels и используйте только i386, потому что сейчас существует множество других распространенных архитектур, таких как amd64.

/Йохан

Для RPM это учебное пособие IBM, состоящее из трех частей, является лучшим руководством для начинающих по упаковке, которое я знаю:

http://www.ibm.com/developerworks/library/l-rpm1/
http://www.ibm.com/developerworks/library/l-rpm2/
http://www.ibm.com/developerworks/library/l-rpm3.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top