Создайте несколько пакетов Debian для файлов данных из одного источника

У меня есть куча файлов словарей для программы словаря dictd. Для каждого словаря есть 2 файла (файл dict.dz и файл .index), всего 8 словарей.

Установка словарей действительно проста, это то, что у меня сейчас есть в моем скрипте:

install -o root -g root -m 644 /path/to/dictd_dictionaries/* /usr/share/dictd
/usr/sbin/dictdconfig --write
service dictd restart

Теперь я хочу упаковать это множество файлов в пакеты .deb, по одному пакету .deb на словарь. Мне бы очень хотелось иметь один исходный пакет .deb, который затем создает все отдельные пакеты, вместо того, чтобы создавать и поддерживать 8 отдельных пакетов (число, которое может со временем расти).

Однако я не понимаю, как файлы debian / packagename.dirs соотносятся с содержимым файла debian / rules. Я попытался загрузить и посмотреть исходный код freedict, который очень похож на то, что я хочу сделать, но его файл правил очень сложен.


person happyskeptic    schedule 05.07.2012    source источник


Ответы (1)


Вы можете использовать пакет dh-make и указать «несколько двоичных файлов». Это немного похоже на мастера для создания скелета каталога debian /.

E.g.

# dh_make --packagename=skeleton_1.0
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
 [s/i/m/l/k/n/b] 

Ввод «m» в этот момент настроит его так, что из одного пакета с исходным кодом будет построено несколько пакетов.

После того, как мастер dh_make все настроит, вам нужно будет поддерживать debian / [packagename] .dirs и debian / [packagename] .install, чтобы упаковщик знал, какие файлы входят в какой .deb.

Например,
skeleton.dirs

usr/bin

skeleton.install

usr/bin/skeleton*
person Alex Zeffertt    schedule 05.07.2012
comment
Спасибо, я думаю, что раньше моя проблема заключалась в том, что я пытался получить файл правил для создания файлов packagename.install. Я создал их вручную, и это работает. - person happyskeptic; 06.07.2012