Це місце, де я завжди знаходив відсутність документації. Я майже лише дізнався, як це працює, дивлячись, як це робиться в інших пакунках. Як і в більшості речей в упаковці Debian, існує кілька способів зробити це. Я вважаю найпростішим способом використання debian/package.install
файлів. Ось приклад пакету, над яким я працював, уява (відділення bzr) .
Спочатку нам потрібно створити пакет в debian/control
. Зараз існує три строфи. Один для вихідного пакету та один для кожного двійкового пакету. Зверніть увагу, що пакет даних foo повинен бути Architecture: all
. Також зауважте, що від фантазії залежить imagination-common (= ${source:Version})
.
Далі ми створюємо debian/imagination.install
файл. Тут містяться конкретні файли або шляхи, які ми хочемо вкласти в пакет уяви. Для цього пакету ми хочемо, щоб усі файли, залежні від архітектури. Файл робочого столу включений, як це потрібно сказати з бінарним файлом, який він викликає у своєму Exec:
рядку.
usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop
Нам потрібно створити debian/imagination-common.install
файл. Це буде містити всі незалежні від архітектури файли, зображення, переклади, документи тощо.
/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/
man dh_install
описує, що насправді відбувається тут:
можливо, у вас є великий пакет, який створює кілька двійкових пакетів. Ви можете використовувати Makefile Upstream, щоб все це встановити в debian / tmp, а потім використовувати dh_install для копіювання каталогів та файлів звідти у відповідні каталоги збирання пакунків.
Що означає "каталоги належних пакетів", це те, що до кінця процесу збирання foo.deb
знайдеться все, що буде в результаті src/debian/foo
. Файли, які в кінцевому підсумку foo-data.deb
, знайдуться в src/debian/foo-data
. Оскільки debian/rules
по суті є лише Makefile, ви можете почати уявляти собі інші способи отримання того ж результату.