Как создать двоичный пакет deb для проекта, который зависит от неподдерживаемых версий официальных пакетов - PullRequest
0 голосов
/ 06 июля 2018

Я хотел бы создать пакет deb для приложения, чтобы его можно было удобно устанавливать и обновлять в системах Debian и Ubuntu. Тем не менее, приложение зависит от более новых выпусков некоторых общих библиотек, которые, хотя сами библиотеки упакованы в Debian и Ubuntu, конкретные версии, от которых зависит мое приложение, еще официально не поддерживаются ни одним дистрибутивом и не доступны в качестве пакетов deb. Они доступны только как исходные пакеты, которые я должен собрать сам, чтобы приложение связывалось с ними.

Кроме того, пакет deb планируется распространять только внутри компании, и нет никаких планов или ожиданий по выпуску deb для широкой публики. Если бы тогда выполнялось руководство по упаковке дистрибутива и было бы необходимо поддерживать официальные пакеты.

IIRC с семейством ОС Windows эта проблема решается путем доставки зависимостей вместе с приложением и хранения их в той же папке, где хранятся исполняемые файлы приложения. Однако я понятия не имею, как эта проблема должна решаться в Linux в целом и в Debian и Ubuntu в частности.

Кто-нибудь знает, какова лучшая стратегия создания пакета deb, который также объединяет более новые версии библиотек, предустановленных в Debian и Ubuntu?

1 Ответ

0 голосов
/ 07 июля 2018

При поиске способа объединения сторонних совместно используемых библиотек в пакет deb, я наткнулся на на этот вопрос о стековом потоке о том, как упаковать совместно используемые библиотеки в файл ELF.

Создание автономного исполняемого файла linux представляется интересной альтернативой комплектации сторонних библиотек. Такие инструменты, как ELF Statifier , по-видимому, делают эту работу довольно хорошо.

Объединение сторонних библиотек в один и тот же пакет deb по-прежнему звучит как правильный способ создания пакета в этих условиях, и, конечно, учитывая, что требуемая версия этих сторонних библиотек не распространяется и не доступна через какие-либо третьи стороны. партийное хранилище. Хотя добавление пакета deb в качестве зависимости является гораздо лучшей альтернативой, в некоторых сценариях и случаях использования этот параметр недоступен.

Таким образом, хотя решение проблемы объединения сторонних разделяемых библиотек все еще не доступно, использование таких инструментов, как ELF Statifier, представляется следующим лучшим решением.

...