Распространение приложений для Ubuntu / Debian для автономной установки с еще не поддерживаемыми пакетами - PullRequest
2 голосов
/ 25 июня 2010

У нас есть две проблемы при развертывании нашего приложения для Ubuntu / Debian:

1. Автономная установка

Многим (скажем, 50%) нашим пользователям потребуется установить автономно. У них будет нулевое подключение к интернету. Таким образом, нам нужно включить все возможные зависимости (время выполнения / сторонние библиотеки и т. Д.) На установочный CD / DVD. Похоже, что APT-on-CD может быть решением здесь, но документация, которую я прочитал, была не совсем ясна.

2. Еще не поддерживаемые версии пакетов

Некоторые зависимости еще не поддерживаются "официальными" репозиториями Ubuntu. Например, версия 4.2 конкретной библиотеки предоставляется в Центре программного обеспечения, но моему приложению требуется версия 4.4 - стабильная версия, только не в официальных пакетах репозитория. (Стабильный дистрибутив Debian отстает еще в версии 3.)

  • Должен ли я сначала создать свой собственный пакет .deb для них или просто установить библиотеки где-нибудь вроде /usr/lib/myapp?
  • Если я создам свой собственный .deb, должен ли я дать ему то же (вероятное) имя, что и у официального пакета? То есть я ожидаю, что многие (если не все) эти пакеты будут официально предоставлены в будущем. Таким образом, в идеале процедура установки (в режиме онлайн) должна выглядеть сначала в официальных репозиториях библиотеки, но при необходимости иметь возможность вернуться к CD / DVD. Возможно ли это, или я просто называю по пакету что-то совершенно другое и позволяю ему постоянно жить бок о бок?

Каковы лучшие методы для решения этих проблем установки?

Ответы [ 4 ]

1 голос
/ 10 августа 2010

1) если у вас есть пакеты на каком-либо носителе, вам не нужно использовать apt, достаточно просто установить dpkg -i /where/your/media/is/mounting/*.deb, чтобы установить вещи?

2) Альтернатива доставки пакетов, которые еще не поддерживаются вашим дистрибутивом, но обеспечивают совместимость дистрибутива ваших клиентов с любым имеющимся у них программным обеспечением для переупаковки этих зависимостей.Измените имя пакета, добавив к нему префикс и измените каталог установки, например, / opt / prefix / вместо / usr

Скомпилируйте ваше приложение с флагом -rpath, указывающим место, где находятся необходимые библиотекипредоставляются (afaik правила Debian запрещают использование rpath) или заставляют ваше приложение запускаться только из сценария оболочки, который устанавливает надлежащий LD_LIBRARY_PATH, прежде чем он запустит ваше реальное приложение.

1 голос
/ 05 августа 2010

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

1 голос
/ 27 июня 2010

Автономная установка: вы пробовали apt-offine ?

Тестирование Debian и нестабильная работа - отличные источники для новых версий определенного пакета.Стабильная версия Debian не получает много обновлений - пакеты либо исправлены.Только если вышестоящий релиз выпускает версию с исправлением ошибок, становится возможным стабильное получение новых изменений.

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

dget http://something.debian.org/path/to/source-pkg.dsc

Вы можете использовать debuild или pbuilder (pbuilder лучше, потому что он сам загружает зависимости сборки и использует для сборки среду чистой комнаты).

Наконец, отличное место для получения исходных пакетов для пакетов Debian в нестабильных (sid) или тестируемых (в настоящее время также называемых squeeze) системах отслеживания пакетов будет отличным местом для их поиска (смотрите на левой боковой панели,вы найдете ссылку на версию пакета в нестабильном и тестируемом. Это ссылки на файл .dsc. Загрузите весь пакет, используя dget, доступный из пакета devscripts.

http://packages.qa.debian.org/name-of-source-package
0 голосов
/ 09 августа 2010

Создайте статическую сборку приложения, и все готово.

Так обычно делают в типичном проприетарном программном обеспечении, таком как Skype, хотя в последних есть как динамические, так и статические сборки.

...