|
||||||||||||||||||||||||||
Как сделать DEB-пакет вручную (краткая инструкция)
Время создания: 03.03.2020 11:15
Текстовые метки: linux, debian, deb, пакет, создание, сборка
Раздел: Компьютер - Linux - Инсталляция программ
Запись: xintrea/mytetra_syncro/master/base/1583223346gdom7hvhes/text.html на raw.github.com
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Последовательность действий для создания DEB-пакета вручную следующие: 1. Создаем каталог с название пакета; 2. В нем создаем дерево каталогов и файлов, которые надо установить, с абсолютными путями linux (т.е. ./<имя пакета>/usr/share/kontakt/<файлы>); 3. В созданном дереве каталогов создаем файлы, которые необходимо устанавливать. В этом каталоге необходимо создавать такую же структуру каталогов (как будто от корневого), что и каталоги в устанавливаемой системе; 4. В корне папки (создаваемого пакета) создаем каталог DEBIAN; 5. Перейти в каталог DEBIAN и создать в нем следующие файлы: - control - changelog - copyright - dirs - md5sums - preinst (скрипт, необходимо установить права на выполнение) - postinst (скрипт, необходимо установить права на выполнение) - prerm (скрипт, необходимо установить права на выполнение) - postrm (скрипт, необходимо установить права на выполнение) 6. Выполнить команду dpkg-deb ... Далее назначение файлов расписано более подробно. Файлы, которые необходимо создать Файл control
Пример содержимого файла control Package: supersh Version: 1.0 Maintainer: Sergey Ivantsov <SergeyLeonKik@mail.ru> Architecture: all Section: misc Depends: bash (>=4.2) Description: Super Shell Script ␣A super example script Файл changelog (необязательно) Используется dpkg для получения номера версии, ревизии, дистрибутива и важности пакета. Пример содержимого файла changelog supersh (1.0-1) stable; urgency=medium * Testing. -- o_O Tync <o-o-tync.habrahabr.ru> Sun, 13 Dec 2009 00:11:46 +0300 Файл copyright (необязательно) Текст лицензии. Пример содержимого файла Package build Ivantsov Sergey Файл dirs Список абсолютных путей к папкам, которые требуются программе, но по каким-либо причинам не создаются (используется для создания папок? Похоже, что нет). Пример содержимого файла /var/log/supersh /var/lib/supersh Видимо, этот список нужен только для указания пакетной системе, какие каталоги контролируются данным пакетом. То есть, например бинарник программы может сам создавать какие-то каталоги, и здесь прописывается какие именно каталоги принадлежат программе. При удалении пакета данные каталоги будут удалены. В теории. Файл md5sums (необязательно) Используется для проверки целостности пакета. Пример содержимого файла Заполняется так (cwd=корень пакета): $ md5deep -r usr > DEBIAN/md5sums Скрипт preinst Выполняется перед установкой пакета: он может подготовить что-либо для успешной установки. Пример содержимого файла #!/bin/bash #echo “Выполняется Pre-install” read exit 0 Скрипт postinst Выполняется сразу после установки пакета: он настраивает установленный пакет так, чтоб он был готов к работе. Пример содержимого файла #!/bin/bash #echo “Выполняется Post-install” read exit 0 Скрипт prerm Выполняется при процедуре удаления пакета (apt-get remove ... или apt-get purge ...), выполнение происходит перед тем, как будут удаляться файлы, которые были установлены из файловой структуры внутри пакета. Внимание! В prerm невозможно узнать в каком режиме происходит удаление пакета - в remove или в purge. Скрипт postrm Выполняется при процедуре удаления пакета (apt-get remove ... или apt-get purge ...), выполнение происходит после того, как будут удалены все файлы, которые были установлены из файловой структуры внутри пакета. В качестве первого параметра $1 в данный скрипт передается строка режима, в котором происходит удаление пакета. При remove будет "remove", при purge будет "purge". Для создания deb-пакета выполняем следующую команду: fakeroot dpkg-deb –build <название каталога с подготовленными файлами пакета> Пакет будет создан в текущем каталоге. |
||||||||||||||||||||||||||
Так же в этом разделе:
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|