Это место, где мне всегда не хватало документации. Я почти узнал, как это работает, глядя на то, как это делается в других пакетах. Как и в большинстве случаев в упаковке Debian, есть несколько способов сделать это. Я считаю, что самый простой способ - это использовать debian/package.installфайлы. Вот пример пакета, над которым я работал, воображение (ветка bzr) .
Во-первых, нам нужно создать пакет в debian/control. Сейчас есть три строфы. Один для исходного пакета и один для каждого двоичного пакета. Обратите внимание, что пакет foo-data должен быть 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 для установки всего этого в debian / tmp, а затем использовать dh_install для копирования каталогов и файлов оттуда в соответствующие каталоги сборки пакетов.
Под «правильными каталогами сборки пакетов» подразумевается, что к концу процесса сборки все, что будет в результате, foo.debбудет найдено в src/debian/foo. Файлы, которые в конечном итоге foo-data.debбудут найдены в src/debian/foo-data. По debian/rulesсути, это просто Makefile, вы можете представить себе другие способы получить тот же результат.