Как мне сделать собственный .deb пакет?
Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.
Для начала, вы должны иметь, то что вам нужно установить с помощью собираемого вами пакета. Путь это будет какая-либо утилита, расширяющие возможности системы. (С тем же успехом - это могут быть дополнительные файлы шрифтов или еще что-нибудь). Пусть эта утилита называется probe. Положим, что к этой утилите вы написали страничку руководства man с названием probe.1 и кроме того положим, что есть какой-либо файл, где разобран пример работы с данной утилитой с именем example. Путь файл с примером и страничка руководства называются сопровождающими файлами.
Важно, чтобы вы представляли, где должна быть размещена эта утилита и сопровождающие ее файлы. Обычно исполняемые файлы размещают в /usr/bin. Странички руководства man размещают в /usr/man/man.1, а всякие примеры в /usr/lib/имя_утилиты. Пусть так будет и в нашем случае.
Итак, выполняем следующие шаги:
Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту и сопровождающие файлы. При этом каталоги создаются так, как будто DEB является корневым каталогом. Таким образом, в нашем случае, файлы должны быть размещены следующим образом:
DEB/usr/bin/probe
DEB/usr/man/man1/probe.1
DEB/usr/lib/probe/example
Вот для чего они нужны:
Служебная |
Список конфигурационных файлов |
Скрипт, выполняемый перед началом установки пакета |
Скрипт, выполняемый после установки пакета |
Скрипт, выполняемый перед удалением пакета |
Скрипт, выполняемый после удаления пакета |
Нелишним будет напомнить, что скрипты должны иметь права на выполнение, иначе ничего выполняется у вас не будет.
Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.
Эту информацию впоследствии будет использовать менеджер пакетов dpkg и программа dselect. Информацию можно занести в любом текстовом редакторе. Для нашего случая я привожу уже готовый файл:
Package: probe Version: 1.0 Architecture: i386 Maintainer: Ivan Ivanov <ivan@perm.ru> Description: My probe utility This is my utility
Обратите внимание: перед фразой This is my utility пробел. Он указывает, что данная фраза является продолжением описания.
Если его не поставить, то при сборке пакета вы получите сообщение об ошибке.
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).