пакет debian, создающий необходимые каталоги в preinst
Вопрос
У меня есть следующая структура debian:
- debian/usr/ поделиться/ протестировать
- debian/usr/поделиться/тест/test
- debian/usr/поделиться/тест/test/a
- debian/usr/поделиться/тест/test/b
После сборки пакета с помощью dpkg-deb --build и установки его с помощью dpkg -i, похоже, что он не создает тест папок автоматически, если они не существуют.Нужно ли мне создавать их вручную в preinst script?
Обновить:Проблема заключалась в том, что у preinst была ошибка, из-за которой распаковка не имела возможности произойти.
Лоран
Решение
Посмотрите на мой пример здесь.
debian/DEBIAN
debian/usr/bin
debian/usr/lib
У вас есть пара вариантов:
- Заполните каталоги файлами до того , как генерация пакета (двоичный пакет)
- Построить Источник посылка, в которой СДЕЛАТЬ будет вызван для сборки пакета и его установки.
В первом случае вам не нужно создавать каталоги с помощью preinst
сценарий:иерархия папок будет создана при необходимости менеджером пакетов при установке пакета.
Во втором случае вам нужно будет использовать mkdir -p
чтобы создать иерархию папок во время install
фаза.
За последний год я использовал 3 различных способа упаковки для репозиториев Debian, и, поверьте мне, деталей, требующих учета, множество.Одним из облегчений было знакомство с Launchpad и их процессом публикации PPA.
Другие советы
Вам нужны те, что находятся в пакете с именем либо tmp
или такой же, как ваш первый пакет, указанный в debian /control, в зависимости от того, какую версию режима совместимости debhelper вы выберете.
Например.звонок от одного из debhelper
примеры файлов:
$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
Здесь вам не хватает этого единственного уровня косвенности.