Русский Debian 3.0 FAQ 0.3

       

Как мне сделать собственный .deb пакет?


Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.

Для начала, вы должны иметь, то что вам нужно установить с помощью собираемого вами пакета. Путь это будет какая-либо утилита, расширяющие возможности системы. (С тем же успехом - это могут быть дополнительные файлы шрифтов или еще что-нибудь). Пусть эта утилита называется probe. Положим, что к этой утилите вы написали страничку руководства man с названием probe.1 и кроме того положим, что есть какой-либо файл, где разобран пример работы с данной утилитой с именем example. Путь файл с примером и страничка руководства называются сопровождающими файлами.

Важно, чтобы вы представляли, где должна быть размещена эта утилита и сопровождающие ее файлы. Обычно исполняемые файлы размещают в /usr/bin. Странички руководства man размещают в /usr/man/man.1, а всякие примеры в /usr/lib/имя_утилиты. Пусть так будет и в нашем случае.

Итак, выполняем следующие шаги:

  • Создаем временный каталог с именем DEB
  • Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту и сопровождающие файлы
  • Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту и сопровождающие файлы. При этом каталоги создаются так, как будто DEB является корневым каталогом. Таким образом, в нашем случае, файлы должны быть размещены следующим образом:

    DEB/usr/bin/probe

    DEB/usr/man/man1/probe.1

    DEB/usr/lib/probe/example

  • Создаем в каталоге DEB служебный каталог с именем debian
  • В этом каталоге создаем обязательный файл control и по вашему желанию также могут быть добавлены файлы preinst, postinst, prerm, postrm и conffiles.

    Вот для чего они нужны:

    control

    conffiles

    preinst

    postinst

    prerm

    postrm

    Служебная
    Список конфигурационных файлов
    Скрипт, выполняемый перед началом установки пакета
    Скрипт, выполняемый после установки пакета
    Скрипт, выполняемый перед удалением пакета
    Скрипт, выполняемый после удаления пакета

    Нелишним будет напомнить, что скрипты должны иметь права на выполнение, иначе ничего выполняется у вас не будет.

    Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.


  • Теперь заполняем файл control служебной информацией.
    Эту информацию впоследствии будет использовать менеджер пакетов dpkg и программа dselect. Информацию можно занести в любом текстовом редакторе. Для нашего случая я привожу уже готовый файл:
    Package: probe Version: 1.0 Architecture: i386 Maintainer: Ivan Ivanov <ivan@perm.ru> Description: My probe utility This is my utility
  • Теперь поясним, что к чему. Слова с двоеточиями являются служебными и выполняют закрепленные за ними функции. Здесь даны далеко не все возможные слова - остальные найдете на страничке руководства man с названием deb-control(5). За словом Package: должно идти имя пакета. В этом имени не должно быть заглавных букв или небуквенных символов типа ``!'', ``?'' и т.д. За словом Version: должен идти номер версии. За словом Architecture: архитектура машины для которой собирается пакет. Для платформы Intel это i386. За словом Maintainer: должно следовать имя автора пакета, с необязательным адресом электронной почты (в нашем случае ivan@perm.ru). За словом Description: должно следовать краткое, или полное описание пакета (можно использовать русские буквы, но тогда в dselect'е вы будете иметь проблемы). Краткое описание следует непосредственно за словом. Полное описание начинается со следующей строки.
    Обратите внимание: перед фразой This is my utility пробел. Он указывает, что данная фраза является продолжением описания.
    Если его не поставить, то при сборке пакета вы получите сообщение об ошибке.
  • Создайте и заполните остальные файлы, указанные в таблице, если ВАШЕМУ пакету это нужно (в данном случае они не нужны).
  • Для генерации .deb пакета наберите команду

  • dpkg -b имя_каталога имя_пакета.deb
    В нашем случае эта команда будет выглядеть так:
    dpkg -b DEB probe-1.0.deb
    Если вы правильно выполнили все описанные выше инструкции, то вы получите файл probe-1.0.deb, который вы можете теперь установить через команду
    dpkg -i probe-1.0.deb.
    Не правда ли, все это довольно просто? Вы можете пойти дальше, создав свое собственное дополнение к стандартному дистрибутиву в стиле Debian и подключать его через каталог local в программе dselect. Однако создание такого дополнения, с генерацией файла Packages будет посложнее. По этому я настоятельно рекомендую вам почитать страницы руководства man с названиями: dpkg(8), dpkg-deb(1), deb-control(5) и dpkg-scanpackages(8).

    Содержание раздела