Как изменить исходный пакет Debian для включения дополнительного исполняемого скрипта? - PullRequest
0 голосов
/ 04 января 2019

Цель : я хочу создать модифицированный исходный пакет Debian, а именно официальный rrdtool пакет + "некоторые изменения".Одним из таких изменений является добавление исполняемого скрипта.


У меня есть этот рецепт для исправления пакетов, которые я использовал много лет:

dget http://bla/bla/bla.dsc
cd bla-1.0
(hack hack hack...)
dpkg-source -b .

Это работает, еслипатчи не изменяют никакие файлы, но с патчем, который представляет исполняемый файл, следуя приведенному выше рецепту, выдает следующее сообщение:

dpkg-source: warning: executable mode 0755 of 'foobar' will not be represented in diff

И, конечно же, когда я распаковываю мой новый пакет с исходным кодом foobar существуетно не исполняемый.


Насколько я понимаю, quilt обрабатывает патчи на основе GNU diff + patch.GNU diff + patch не обрабатывает права доступа к файлам.Хм ...

Так как же ввести исполняемый скрипт в пакет с исходным кодом, поддерживаемый quilt?

Поиск в Google не помог.Кажется, что другие спрашивали, но без ответов.

Я знаю, что я мог бы просто внести свои изменения в архив *.orig.tar.gz, но я хотел бы избежать этого, если это вообще возможно.Я просто поражен, что это было так сложно ...

1 Ответ

0 голосов
/ 01 июня 2019

Как и в большинстве случаев, связанных с упаковкой Debian, я думаю, что, скорее всего, есть несколько методов, которые можно использовать для достижения вашей цели.Поскольку я еще новичок в этом процессе, тот, который я собираюсь предложить, довольно не элегантен, но и очень прост в реализации.

Руководство сопровождающего Debian говорит нам, чтоdebian/install file ...

содержит одну строку для каждого установленного файла, с именем файла (относительно верхнего каталога сборки), затем пробелом, затем каталогом установки (относительно установкикаталог).Один из примеров того, где это используется, если бинарный src / bar оставлен неустановленным;установочный файл может выглядеть следующим образом:

src/bar usr/bin

Это означает, что при установке этого пакета будет выполняться исполняемая команда /usr/bin/bar.

, которая приводит меня кподумайте, что если вы создали такой debian/install файл для нового исполняемого скрипта вашего пакета, созданного патчем quilt, перечислив его путь относительно корня dir сборки и биндира, в котором вы хотите его разместить, вы получите пакет, выполняющий кактребуемый.

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

...