пакет debian создает необходимые каталоги в preinst - PullRequest
2 голосов
/ 01 декабря 2009

У меня следующая структура Debian:

  • Debian / USR / доли / тест
  • Debian / USR / доли / тест / тест
  • Debian / USR / доли / тест / тест /
  • Debian / USR / доли / испытание / испытание / б

После сборки пакета с использованием dpkg-deb --build и установки его с помощью dpkg -i, похоже, он не создает тест папок автоматически, если они не существуют. Нужно ли создавать их вручную в preinst скрипте?

ОБНОВЛЕНИЕ: проблема была в том, что в preinst произошла ошибка, поэтому распаковка не имела шансов произойти.

Laurent

Ответы [ 2 ]

3 голосов
/ 01 декабря 2009

Посмотрите на мой пример здесь .

debian/DEBIAN 
debian/usr/bin
debian/usr/lib

У вас есть несколько вариантов:

  1. Заполните каталоги файлами до генерации пакета (двоичный пакет)
  2. Создание пакета source , в котором будет вызываться MAKE для сборки и установки пакета.

В первом случае вам не нужно создавать каталоги с помощью сценария preinst: при необходимости пакетная иерархия будет создаваться менеджером пакетов при установке пакета.

Во втором случае вам нужно будет использовать mkdir -p для создания иерархии папок на этапе install.


В течение прошлого года я прошел через 3 различных способа упаковки для репозиториев Debian, и поверьте мне, подробностей, которые нужно учитывать, очень много. Одно облегчение состояло в том, чтобы познакомиться с Launchpad и их издательским процессом PPA.

0 голосов
/ 01 декабря 2009

Вам нужны пакеты в пакете с именем tmp или в том же пакете, который указан в вашем первом пакете, указанном в debian / control, в зависимости от того, какую версию режима компиляции debhelper вы выбрали.

например. вызов из одного из debhelper примеров файлов:

$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install

Вам не хватает этого одного уровня косвенности здесь.

...