Конфигурация самодельного пакета .deb

Я пытаюсь создать свой собственный пакет debian для развертывания некоторых скриптов. Мне нужны некоторые параметры от пользователя, я собираю их с помощью debconf.

Итак, я создал подпапку DEBIAN и поместил в нее элементы управления, шаблоны и файлы конфигурации.

Затем я собираю свой пакет с помощью dpkg-deb.

Когда я устанавливаю пакет с apt install packagename.deb , задаются вопросы о debconf, и все идет хорошо. Но когда я устанавливаю с помощью dpkg -i packagename.deb , вопросов не задается, и установка завершается неудачей из-за отсутствия необходимых переменных. Я также протестировал запуск dpkg-preconfigure packagename.deb , и мне задали вопросы.

Почему dpkg не запускает сценарий конфигурации?

Спасибо

Некоторые журналы показывают, что его нет «Предварительная настройка» с помощью dpkg:

root@test-deploy:~# dpkg -i /tmp/packagename-6.5.deb 
Selecting previously unselected package packagename.
(Reading database ... 41282 files and directories currently installed.)
Preparing to unpack /tmp/packagename-6.5.deb ...
Unpacking packagename (6.5-1) ...
Setting up packagename (6.5-1) ...

root@test-deploy:~# apt install /tmp/packagename-6.5.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'packagename' instead of '/tmp/packagename-6.5.deb'
The following NEW packages will be installed:
  packagename
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/381 MB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 /tmp/packagename-6.5.deb packagename amd64 6.5-1 [381 MB]
Preconfiguring packages ...
Selecting previously unselected package packagename.
(Reading database ... 41282 files and directories currently installed.)
Preparing to unpack /tmp/packagename-6.5.deb ...
Unpacking packagename (6.5-1) ...`

На всякий случай я извлек управляющую информацию из файла deb: все в порядке.
root @ test-deploy: / tmp # dpkg -e packagename-6.5.deb корень @ test-deploy: / tmp # ls -l DEBIAN / всего 20 -rwxr-xr-x 1 root root 3337 21 августа 16:21 конфигурация -rw-r - r-- 1 root root 357 19 августа 11:55 control -rwxr-xr-x 1 root root 293 13 августа 15:44 postinst -rwxr-xr-x 1 корень root 366 21 августа 15:10 prerm -rw-r - r-- 1 root root 2384 19 августа, 15:39 шаблоны

1
задан 21 August 2019 в 17:44
1 ответ

Наконец-то выяснил, почему, в главе о HACKS на этой странице:
https://manpages.debian.org/buster/debconf-doc/debconf-devel.7.en.html

Debconf в настоящее время не полностью интегрирован в dpkg (но я хочу изменить это в будущем), поэтому в настоящее время требуются некоторые беспорядочные хаки.

Вам необходимо вызвать библиотеку debconf в начале вашего сценария postinst, используя этот код:
. / usr / share / debconf / confmodule

1
ответ дан 3 December 2019 в 23:01

Теги

Похожие вопросы