Установка пакетов, выбранных через debconf

Автор nkir, 12 января 2021, 15:32:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

nkir

Доброго дня всем!

Возник вопрос. Есть пакет при установке которого выводится интерфейс debconf с запросом какие еще дополнительные пакеты нужно установить. Запрос написан в файле preinst стандартными вызовами debconf:

db_input critical package1/package2 || true ... ну и так далее.

После этого нужно продолжить установку основного пакета с установкой выбранных пакетов. Но нельзя запустить dpkg -i ... из скрипта установки preinst или postinst т.к. база пакетов блокируется уже.

Есть ли какое-нибудь рабочее решение?

Спасибо заранее.

ferum

Вы говорите о каких то абстрактных вещах? Понятно что бывают случаи когда удовлетворить зависимости пакета можно несколькими вариантами набора пакетов, непонятно при чём тут dpkg ?   У нас вроде не slackware, apt способна автоматически разрулить зависимости.
Как вариант распакуйте пакет в любом удобном месте

ar vx package_arhitecture.deb
tar -xzvf control.tar.gz

Прочитайте файл control и выберите устраивающие вас пакеты для установки через dpkg, но проблема может состоять в том что они в сою очередь могут запросить свои зависимости.
Русские дебианщики против цифрового слабоумия !

nkir

#2
Добрый день!

Не совсем так. Сценарий следующий: пользователь запускает на установку головной пакет некоего комплекса. Средствами debconf выводится меню в котором пользователю предлагается список других пакетов, которые могут быть установлены, он отмечает их. Далее ставится обязательный пакет (пакеты) и в дополнение те, что выбрал пользователь. Это происходит единым процессом. Доп. пакеты не зависят от основного (разве что Recommended).
Так вот вопрос - как инициировать установку выбраных пакетов в рамках установки основного? Напрямую вызовом dpkg -i не выйдет.

Один вариант: установка головного пакета запускается из стартового скрипта в котором средствами dialog или debconf собирается список того, что будет ставится, это записывается в файл или БД debconf, потом устанавливаем через:

dpkg --set-selections < packages.list
dpkg --selected-only

Насколько корректно?