LINUX.ORG.RU

Не используется DEBIAN/config при установке пакета

 , ,


0

1

Всем привет.

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

Если я делаю это в postinst - все работает, но в мане (debconf-devel) рекомендуется настоятельно делать все в config. И вот этот самый конфиг упорно не запускается ни как при установке. Пакет собираю при помощи fakeroot dpkg-deb --build $DIST, где последнее собственно директория с DEBIAN/config и прочим.

права на config 0755.

Где я туплю?

P.S. Собственно я даже не встречал кажется программ которые так делают и понимаю, что можно положить config.example куда-нибудь, а потом юзер сам скопирует и поправит. Но из спортивного интереса хотелось бы все-таки добить начатое.

рекомендуется настоятельно делать все в config

Это ещё как? В DEBIAN/config конфигурация пакета (имя, версия, зависимости, вот это всё). Скрипты запускаемые во время установки пакета кладутся в {pre,post}inst.

Параметром --build задаётся не пусть к DEBIAN/config, а путь к директории в которой нажодится директория DEBIAN. Т.е. не /home/username/my-pkg/DEBIAN/config, а /home/username/my-pkg/

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Avoid asking questions in the postinst. Instead, the config script should ask questions using debconf, so that preconfiguration will work.

Я вот про это. А мне собственно вот вопросы как раз и надо задавать

Это ещё как? В DEBIAN/config конфигурация пакета (имя, версия, зависимости, вот это всё)

Это вроде в control

Параметром --build задаётся не пусть к DEBIAN/config, а путь к директории в которой нажодится директория DEBIAN. Т.е. не /home/username/my-pkg/DEBIAN/config, а /home/username/my-pkg/

Это у меня все так и есть. Собственно postinst и postrm даже отрабатывают нормально (использую чтобы класть/удалять автодополнения в /etc/bash_completion.d/, т.к. при непосредственно распаковсе файлов все попадает в /usr)

chuemir ()
Ответ на: комментарий от chuemir

Я вот про это. А мне собственно вот вопросы как раз и надо задавать

Не думаю что «the config script» это DEBIAN/config. Думаю тут речь о том что-бы не изобретать свои велосипеды для получения инфы от пользователя, а использовать готовый мопед debconf:
https://www.debian.org/doc/manuals/developers-reference/ch06.ru.html#bpp-conf...

Это вроде в control

А, ну да.

при непосредственно распаковсе файлов все попадает в /usr

Это ещё почему? deb-пакет может напрямую класть конфиги в /etc

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Не думаю что «the config script» это DEBIAN/config. Думаю тут речь о том что-бы не изобретать свои велосипеды для получения инфы от пользователя, а использовать готовый мопед debconf:

Ну вот это все (взаимодействие с debconf) как раз и предлагают в DEBIAN/config делать. Помимо мана вот статья например https://www.leaseweb.com/labs/2013/06/creating-custom-debian-packages/ Я собственно по ней и делал.

Это ещё почему? deb-пакет может напрямую класть конфиги в /etc

И никакие дополнительные действия не нужны? Вот например для такого дерева содержимое /etc не попадает в итоге куда надо. А если поместить в /usr, а потом скопировать то все ок.

├── DEBIAN
│   ├── control
│   ├── postinst
│   └── postrm
├── etc
│   └── bash_completion.d
│       └── hapidry
└── usr
    ├── bin
    │   ├── hapidry
    │   └── hapidry-generate
    └── share
        ├── doc
        │   └── hapidry
        └── man
            └── man1
                └── hapidry.1.gz

chuemir ()
Ответ на: комментарий от chuemir

И никакие дополнительные действия не нужны?

Нет. Просто fakeroot dpkg-deb --build ./deb_build/ ./pkgname-version.deb. В ./deb_build/ лежат etc, usr и DEBIAN.

MrClon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.