пакет debian, создающий необходимые каталоги в preinst

StackOverflow https://stackoverflow.com/questions/1823176

  •  11-07-2019
  •  | 
  •  

Вопрос

У меня есть следующая структура 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

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

  1. Заполните каталоги файлами до того , как генерация пакета (двоичный пакет)
  2. Построить Источник посылка, в которой СДЕЛАТЬ будет вызван для сборки пакета и его установки.

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

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


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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top