Как часть моего собственного (собственного) файла .deb, который будет развернут на устройствах Ubuntu 12.04, мне нужно добавить несколько репозиториев PPA, запустить обновление apt-get, а затем установить пакеты из этих PPA.
Можно ли это сделать с помощью скриптов .preinst или .postinst в моем файле .deb?
Я полагаю , что если установлен мой файл .deb ( sudo dpkg -i testing.deb
) , что некоторые замки или механизмы вероятно существуют , которые препятствовали бы мне вызов некоторых команд , таких как add-apt-repository
, apt-get update
и apt-get install
.
Это правильное предположение?
apt
dpkg
deb
add-apt-repository
Stéphane
источник
источник
Ответы:
Ты прав. Сценарии сопровождающего не должны вносить никаких изменений в состояния apt или dpkg, кроме тех изменений, которые будут внесены при установке пакета в любом случае.
Установка файла в
/etc/apt/sources.list.d
это нормально. Большинство пакетов, которые выполняют роль типа «установить этот пакет, чтобы добавить APT-репозиторий X в вашу систему», просто делают это (в отличие от вызоваadd-apt-repository
). Также распространено оставлять открытый ключ GPG, используемый для входа в репо/etc/apt/trusted.gpg.d
.Если вы хотите упростить пользователю выполнение дополнительных шагов установки для вашего программного обеспечения, вы можете просто отправить скрипт, который выполняет эту работу, и попросить пользователя запустить скрипт вручную.
Но если вы действительно, действительно хотите позвонить
apt-get update
илиapt-get install
, и т. Д. Автоматически, и вы не возражаете, что ваш пакет будет совершенно неприемлемым в Debian или Ubuntu, и ваши пользователи согласны с тем, что пакет действует таким образом, тогда вы можете поставить что-то, в/etc/cron.d
чем проверяются любые существующие блокировки apt или dpkg, и, если они не удерживаются, выполняется ваш дополнительный шаг установки и организуется повторное выполнение этих шагов. Я не рекомендую такой подход.источник