Простое руководство по созданию и установке собственного пакета deb.
Ничего, кроме Debian, Ubuntu или любой другой ОС на базе Debian.
Приложение Mypackage при запуске откроет официальный сайт Ubuntu.
Номенклатура нашей папки mypackage_1.0_all
: package-name_version_architecture
.
Имя пакета: mypackage
Версия: 1.0
Архитектура: могут быть all
или часть поддерживаемых архитектур.
Сырая архитектура пакета:
. └── mypackage_1.0_all # Основная папка пакета ├── ДЕБИАН │ ├── control # Файл с основной информацией о пакете │ ├── postinst # Скрипт, выполняемый после установки │ └── preinst # Скрипт, выполняемый перед установкой ├── выбор │ └── mypackage # Папка с нашим программным обеспечением │ └── open_link.sh # Скрипт открытия браузера на ubuntu.com └── usr └── поделиться ├── приложения │ └── mypackage.desktop # Файл с информацией о приложении в лаунчере └── значки └── mypackage.xpm # Значок приложения запуска
Подробнее о файле DEBIAN/control
:
Package: mypackage
Version: 1.0 # package version
Architecture: all # our package sums up to a bash script and this is POSIX
Essential: no # essential to the system ?
Priority: optional # install order in package management system
Depends: curl,zenity # comma-separated dependency packages (,)
Maintainer: flavienbwk
Description: A sample package...
Хотя существуют способы установки архивов deb без sudo, большинство пакетов deb предназначены для установки в масштабе всей системы. Это означает, что сценарии preinst и postinst или любые другие двоичные файлы, включенные в архив, могут работать без каких-либо ограничений в вашей системе (альтернативу см. в разделе Snap-пакеты ). Трижды проверяйте свои сценарии и будьте осторожны при публикации, чтобы не сломать чей-то компьютер.
Строить
dpkg-deb --build ./mypackage_1.0_all
Установить
sudo gdebi -n ./mypackage_1.0_all.deb # тест (требуется gdebi-core)sudo dpkg -i ./mypackage_1.0_all.deb # install
Примечание. Удаление с помощью
sudo apt autoremove mypackage
Вы должны увидеть Mypackage в панели запуска:
Первый вариант самый простой: мы можем устанавливать пакеты локально.
Создайте папку, в которой будет расположен наш репозиторий, и переместите внутрь наш пакет .deb
mkdir -p ./зеркало/пул cp ./mypackage_1.0_all.deb ./mirror/pool/
Создайте индексный файл Packages
компакт-диск ./зеркало dpkg-scanpackages -m ./pool > Пакеты
Добавьте каталог в источники вашей системы.
echo "файл deb [trusted=yes]:/path/to/repository/mirror /" | sudo тройник /etc/apt/sources.list.d/mypackage.list
Обновите определение пакетов и установите их.
обновление sudo apt sudo apt установить мой пакет
Локально установленные репозитории затем можно обслуживать с простого сервера Apache на вашем компьютере.
Вы можете создать свой личный архив пакетов (PPA), размещенный на , а затем доступный для всех с помощью простой команды add-apt-repository ppa:<repository_name>
.
Если вы хотите, чтобы ваш пакет был опубликован в репозиториях вселенной/мультивселенной Ubuntu, это может оказаться непростым делом, поскольку вам необходимо получить одобрение MOTU. Хотите опубликовать его на главной странице? Это множество условий, которые необходимо выполнить, включая безопасность и соблюдение критериев обслуживания.
МЕТА-пакеты — это пакеты, которые не устанавливают ничего, кроме списка зависимостей.
Вот как вы можете установить целый рабочий стол через один пакет.
APT — это традиционная система управления пакетами, используемая Debian и его производными (включая Ubuntu). Он дебютировал в 1998 году и использует пакеты .deb
.
Snap, представленный Canonical в 2014 году, — это новый менеджер пакетов, предназначенный для упрощения распространения пакетов между различными дистрибутивами Linux. Он объединяет зависимости внутри каждого пакета .snap
, что приводит к увеличению размера пакета, но смягчает «ад зависимостей». Это особенно полезно в автономных системах.
Ключевые различия заключаются в том, что пакеты Snap ориентированы на совместимость между дистрибутивами и автономность, потенциально лучшую безопасность за счет изолированной программной среды пакетов и автоматические обновления. APT, с другой стороны, полагается на общесистемные библиотеки, что уменьшает размер пакетов, но может вызвать проблемы с зависимостями.