Распространение программы в Linux без исходного кода
Вопрос
Я хочу иметь возможность распространять программу в 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:
Вы могли бы посмотреть на Инталлер 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