Описание процесса сборки пакета deb

Содержание:

Немного теории

Что представляет собой src-пакет в системе Debian?

Src-пакет для debian — это исходные тексты программы, которые любезно предоставлены автором под той или иной лицензией, дополненные несколькими скриптами (которые предоставлены сопровождающим пакета), обеспечивающими сборку пакета.

Все скрипты, файлы и т.п., относящиеся к сборке пакета в системе Debian, традиционно располагаются в подкаталоге debian/ вместе с исходными текстами.

Src-пакет Debian обычно состоит из нескольких файлов:

  • package-version.dsc — текстовый файл, включающий в себя перечень остальных необходимых файлов;

  • package-version.orig.tar.gz — архив с исходными текстами программы;

  • package-version.diff.gz — патч на архив с исходными текстами программы, добавляющий в них вышеупомянутый каталог debian/, а так же, возможно, содержащий исправления внесенные в исходные тексты сопровождающим.

Примечание: Некоторые включают каталог debian/ прямо в архив с исходными кодами. Это в основном касается программ разработанных специально для Debian. В таком случае вместо файлов .orig.tar.gz и .diff.gz будет один файл package-version.tar.gz.

Получение и распаковка пакета с исходными текстами

В системе, настроенной как было рекомендовано выше, данная процедура выливается в одну команду:

 $ apt-get source package

для нашего случая с fluxbox это будет выглядеть так:

  $ apt-get source fluxbox

  Чтение списков пакетов... Готово

  Построение дерева зависимостей... Готово

  Нужно загрузить 1033kB архивов с исходными текстами.

  Получено:1 http://ftp.debian.org experimental/main fluxbox 0.9.15.1+1.0rc2-1 (dsc) 

  Получено:2 http://ftp.debian.org experimental/main fluxbox 0.9.15.1+1.0rc2-1 (tar) 

  Получено:3 http://ftp.debian.org experimental/main fluxbox 0.9.15.1+1.0rc2-1 (diff)                                   

  Получено 1033kB за 1m38s (10,5kB/c)                                                                                           

  gpg: Signature made Втр 04 Июл 2006 17:05:39 MSD using DSA key ID E160649A

  gpg: Can't check signature: public key not found

  dpkg-source: extracting fluxbox in fluxbox-0.9.15.1+1.0rc2

  dpkg-source: unpacking fluxbox_0.9.15.1+1.0rc2.orig.tar.gz

  dpkg-source: applying ./fluxbox_0.9.15.1+1.0rc2-1.diff.gz

Чтобы узнать список версий в доступных репозиториях, можно использовать команду

$ apt-cache policy <имя пакета>

В результате этого действия, как видно из приведенного выше лога, были скачаны нужные файлы с зеркала (которое мы прописали в /etc/apt/sources.list) и произведена распаковка исходников и наложение патча в .diff.gz.

 $ dpkg-source -x fluxbox_0.9.15.1+1.0rc2-1.dsc

Также можно использовать утилиту dget, которая скачает весь пакет и сразу распакует исходники:

dget www.path.to/fluxbox_0.9.15.1+1.0rc2-1.dsc

Все действия по сборке пакетов выполняются из каталога с исходными текстами, который получился при распаковке src-архива. В этом каталоге расположен и каталог debian/.

В данном каталоге нас прежде всего будут интересовать два файла:

  • debian/rules — этот скрипт осуществляет собственно сборку пакета (и представляет собой обычный Makefile);

  • debian/control — этот текстовый файл снабдит нас некоторой информацией, которая нам понадобится ниже;

Прежде всего в последнем файле нас интересует одна строка, для нашего пакета fluxbox она выглядит так:

Build-Depends: libx11-dev, libxext-dev, libxft-dev, libxinerama-dev, libxpm-dev, libxrandr-dev, x-dev, libxt-dev, debhelper (>=4.1.0), libxft-dev, libx11-dev, libxext-dev, libxft-dev, libxinerama-dev, libxpm-dev, libxrandr-dev, x-dev, libimlib2-dev, libgtk2.0-dev, cdbs

как видим это просто список пакетов которые необходимы нам при сборке.

Зависимости для сборки

Это может оказаться как самый простой вопрос, так и самый сложный. Ситуация состоит в следующем. Сопровождающий пакета, как правило, является человеком, хорошо разбирающимся во внутреннем устройстве Debian, поэтому сопровождающие зачастую раньше других переходят на использование testing/unstable веток. Кроме того, аплоад пакетов в Debian происходит прежде всего в unstable, а потому сопровождающий часто оттестировал сборку своего пакета только под testing/unstable. Довольно редко авторы программ указывают версионные зависимости для своих детищ, поэтому не всегда удаётся проставить правильные версии, и они могут быть как завышены, так и занижены. Выяснять, с какой версией той или иной библиотеки перестанет собираться программа занимает много времени и сил, а зачастую и не очень нужно.

Установка PORTAINER

Portainer — графическая панель для управления docker контейнерами.

Создайте хранилище данных для Portainer:

Запустите контейнер c Portainer:

После запуска перейдите в браузере по адресу ip-сервера:9000, интерфейс предложит установить пароль администратора.

Далее выбираете расположение Docker на локальном сервере (Local) или на удаленном.

Панель установлена, можно запускать контейнеры.

В панели управления в разделе «App Template» можно найти шаблоны с ПО и запустить их в контейнерах.

В разделе «Containers» можно увидеть все статусы по контейнерам на сервере. В нашем случае один контейнер с текущей панелью Portainer, а в двух других запущенные ранее тестовые образы hello-world.

Install .deb package through the Terminal

Open the Ubuntu command line, the Terminal application, either through the system Dash or the Ctrl+Alt+T shortcut.

You can then use the dpkg utility in the following syntax in order to install a .deb package that is already residing on your system.

$ sudo dpkg -i

Example:

In case we have to install the downloaded Google Chrome .deb package, we will enter the following command to install the package:

$ sudo dpkg –i google-chrome-stable_current_amd64.deb

Note: You need to be a superuser in order to run this command.

Google Chrome should now be installed on your system. If you have downloaded the installation package at any other location, you need to specify the entire path in the dpkg command.

Removal:

If you want to uninstall software through dpkg, you need to specify the program name, rather than the .deb file name in the following command syntax:

$ sudo dpkg -r

Example:

This is how I will remove the installed Google Chrome stable version from my system through the dpkg utility:

$ sudo dpkg -r google-chrome-stable

How to remove .deb package

You can use the following command to remove/uninstall the package

If you want to remove a package along with configuration file then run the following command

When you uninstall the package it will remove the only package and dependency will remain in your computer so run the following command to remove unused dependency packages in your system.

If you want to remove package as well as its dependency then use the apt command followed by remove option and package name.

See the example below:

You can use GUI to uninstall the package follow the steps:

Step 1: Open software center in ubuntu

Step 2: Click on an Installed tab inside the ubuntu software center application

Step 3: Find the package name and Click on “Remove”.

Сборка с созданием чистых образов систем

На самом деле, для того, чтобы собрать пакет правильно, его надо собирать в минимальной системе, где стоят только build-essential и зависимости этого пакета. Тогда, во-первых, не будет никаких накладок из-за того, что у вас в системе стоят некоторые пакеты вообще неизвестно откуда и непонятно каких версий (и в итоге в зависимостях у бинарного пакета могут оказаться пакеты версий, отсутствующих в том дистрибутиве, под который вы хотите собрать пакет), а во-вторых, вы избежите накладок (крайне редких, но все же), когда установленный лишний пакет как-то (читай негативно и не всегда очевидно) влияет на сборку.

В качестве решения подойдет chroot с чистым окружением… Испугались? Все уже украдено до нас.

Сборка пакета в системе pbuilder

Довольно неплохо упрощает данный процесс интерактивная программа pbuilder. Установите пакет pbuilder, затем откройте на редактирование /etc/pbuilderrc и пропишите адрес Вашего любимого репозитория.

Выполните команды:

 # pbuilder update
 # pbuilder create --distribution '''sarge'''

система готова к употреблению.

Вместо имени sarge подставьте название Вашего дистрибутива.

теперь чтобы собрать пакет для выбранного дистрибутива дайте команду:

 # pbuilder build package-version.dsc

Будут автоматически проделаны все описанные выше шаги, при этом все пакеты требуемые для сборки скачиваются и устанавливаются во временный каталог, поэтому система не «замусоривается» лишними пакетами. Правда, проблему с зависимостями для сборки всё равно придется решать, однако последовательно пройти по всем зависимостям с данным инструментом не представляет особого труда. Почитайте документацию на этот замечательный пакет и узнайте об остальных его возможностях.

Сборка пакета в системе cowbuilder

сowbuilder является из пакета cowdancer – это аналог pbuilder, только образ сборочной системы он хранит не в tar.gz а в развернутом виде, а при сборке копирует этот образ с использованием техники copy-on-write, что ускоряет сборку.

Пример конфига /etc/pbuilderrc:

BUILDPLACE=/var/cache/pbuilder/build/
USEPROC=yes
USEDEVPTS=yes
USEDEVFS=no
BUILDRESULT=/var/cache/pbuilder/result/
#у меня кэширующий apt-cacher, пожтому я отключил кэширование пакетов внутри pbuilder
#APTCACHE="/var/cache/pbuilder/aptcache/"
APTCACHE=""
REMOVEPACKAGES=""
HOOKDIR=""
export DEBIAN_FRONTEND="noninteractive"
DEBEMAIL="Alexander GQ Gerasiov < gq@cs.msu.su >"
BUILDSOURCEROOTCMD="fakeroot"
PBUILDERROOTCMD="sudo"
DEBBUILDOPTS=""
APTCONFDIR=""
BUILDUSERID=1000
BUILDUSERNAME=gq
export LOGNAME=gq
BINDMOUNTS=""
unset DEBOOTSTRAPOPTS
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
export SHELL=/bin/bash
DEBOOTSTRAP="cdebootstrap"
PKGNAME_LOGFILE_EXTENTION="_$(dpkg --print-architecture).build"

Создать образ системы можно и без использования конфига:

# cowbuilder --create --distribution sid --architecture i386

Теперь логинимся в чистую систему:

# cowbuilder --login --save

Дальше ставим утилиты для сборки и действуем как в стандартной системе (смотреть след. раздел и начало страницы):

# aptitude install devscripts

Виход из окружения стандартен, собраные пакеты искать в /var/cache/pbuilder.

exit
или
Сtrl+D

Сборка пакета в чистом окружении

Как теперь собрать пакет в нужном окружении. Вначале из нашего каталога <имя пакета>-<версия апстрим> с измененной версией и поправленными build-depends собираем сурцовый пакет новой версии:

dpkg-buildpackade -rfakeroot -S

Переходим каталогом выше, где собрался файлик <имя пакета>_<версия>.dsc (где версия, это уже наша версия с “~backport”) и говорим

pbuild --dist sarge <имя пакета>_<версия>.dsc

Если произошла ошибка (например из-за проблем с зависимостями), то возвращаемся к шагу 1 и исправляем ошибки. Если все прошло нормально, то собранные пакеты окажутся в каталоге /var/cache/pbuilder/results. Вот собственно и все.

Для обновления образов (особенно актуально для testing) я использую команду

pbuild --dist etch --update

Пример скрипта автоматизации: ||pbuild||

Пример скрипта автоматизации для нескольких релизов: ||backport||

Launchpad

Launchpad от Canonical, той же компании, которая предлагает нам Ubuntu. Launchpad – это веб-сайт для разработки и поддержки программного обеспечения с открытым исходным кодом. Хотя Launchpad – это прежде всего инструмент для разработчиков, это также место, где вы можете загружать пакеты.

Большая часть программного обеспечения на Launchpad ориентирована на Ubuntu, поэтому на сайте доступно много DEB. Но вам придется искать, чтобы найти их. Многие проекты обеспечивают загрузку только в виде сжатых файлов TAR.GZ. С другой стороны, некоторые также предоставляют RPM.

Панель запуска не так широко используется, как раньше, поэтому многие проекты здесь размещены в другом месте или заброшены. Это не тот сайт, который я бы проверил первым, но все же, здесь многое можно найти.

How to download deb Package

You must go to the vendor’s website and download the executable file in .deb format. Don’t forget system architecture before downloading the .deb file. If you are running 32 bit then download deb file for 32 bit otherwise for 64 bit.

For the demonstration purpose, I am going to install TeamViewer on my Ubuntu operating system, then first I will have to go on the vendor’s website teamviewer.com then I will search for Teamviewer executable file in .deb format.

I found there are two types of the .deb packages, one is 32 bit another 64 bit. I have the installed Ubuntu operating system 64 bit. So I download 64 bit .deb file. The file name is teamviewer_14.5.1691_amd64.deb

Резюме файла DEB

Файлы DEB связаны с один типом (-ами) файлов, и их можно просматривать с помощью IZArc, разработанного Ivan Zahariev. В целом, этот формат связан с три существующим (-и) прикладным (-и) программным (-и) средством (-ами). Обычно они имеют формат Debian Software Package.
Чаще всего файлы DEB классифицируют, как Compressed Files.

Файлы с расширением DEB были идентифицированы на настольных компьютерах (и некоторых мобильных устройствах). Они полностью или частично поддерживаются Windows, Mac и Linux.

Рейтинг популярности основного типа файла DEB составляет «Низкий», что означает, что эти файлы встречаются на стандартных настольных комьютерах или мобильных устройствах достаточно редко.

Используйте инструмент командной строки ‘dpkg’ в дистрибутиве Linux на основе Debian

Каждый дистрибутив Linux, основанный на Debian, использует пакеты Debian в качестве метода установки и удаления программного обеспечения. Пакеты Debian идентифицируются по расширению файла .deb. Их можно устанавливать и удалять с помощью графических инструментов и командной строки.

Зачем устанавливать файл .deb вручную

Большую часть времени вы используете менеджер пакетов, такой как Ubuntu Software Center, Synaptic или Muon, для установки программного обеспечения в дистрибутивах на основе Debian. Если вы предпочитаете использовать командную строку, вы, вероятно, будете использовать apt-get.

Некоторые приложения недоступны в репозиториях и должны быть загружены с веб-сайтов поставщиков. Будьте внимательны при загрузке и установке пакетов Debian из источников, которых нет в репозиториях дистрибутива.

Некоторые из крупнейших приложений поставляются в этом формате, в том числе веб-браузер Google Chrome

По этой причине важно знать, как устанавливать пакеты вручную.

Где взять файл .deb

Для демонстрации вам понадобится файл .deb для установки.

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

На странице QR Code Creator есть файл .deb. Нажав на ссылку, вы загрузите файл .deb в вашу папку загрузок.

Как установить .deb пакеты

Инструмент, используемый для установки и удаления пакетов Debian, называется «dpkg». Это инструмент командной строки. С помощью переключателей вы можете делать с ним много разных вещей.

Первое, что вы хотите сделать, это установить пакет. Введите в командной строке следующее:

 sudo dpkg -i 

Например, чтобы установить QR Code Creator, команда выглядит следующим образом:

 sudo dpkg -i qr-code-creator_1.0_all.deb 

Если вы предпочитаете, вы также можете использовать – install вместо -i следующим образом:

 sudo dpkg - установить qr-code-creator_1.0_all.deb 

Что находится в файле .deb?

Если вы когда-нибудь задумывались, из чего состоит пакет .deb, вы можете запустить следующую команду, чтобы извлечь файлы из пакета без его установки.

 dpkg-deb -x qr-code-creator_1.0_all.deb ~/qrcodecreator 

Эта команда извлекает содержимое пакета qr-code-creator в папку с именем qrcodecreator, расположенную в домашней папке (/ home/qrcodecreator). Папка назначения qrcodecreator уже должна существовать.

В случае создателя кода qr содержимое выглядит следующим образом:

  • USR
  • usr -> bin
  • usr -> bin -> qr-code-creator
  • usr -> поделиться
  • usr -> поделиться -> приложения
  • usr -> поделиться -> приложения -> qr-code-creator.desktop
  • usr -> поделиться -> doc
  • usr -> share -> doc -> qr-code-creator
  • usr -> share -> doc -> qr-code-creator -> changelog.gz
  • usr -> share -> doc -> qr-code-creator -> авторские права
  • usr -> поделиться -> человек
  • usr -> поделиться -> man -> man1
  • usr -> поделиться -> man -> man1 -> qr-code-creator.1.gz
  • usr -> поделиться -> pixmaps
  • usr -> share -> pixmaps -> qr-code-creator.png
  • usr -> поделиться -> qr-code-creator

Удаление пакетов .deb

Удалите пакет Debian, используя следующую команду:

 sudo dpkg -r 

Если вы также хотите удалить файлы конфигурации, используйте следующую команду:

 sudo dpkg -P  

Примечание . Если вы используете дистрибутив на основе Ubuntu, просто дважды щелкните файл .deb, и он загрузится в Центр программного обеспечения. Затем нажмите установить.

Устанавливаем RPM-пакеты в Ubuntu

RPM — формат пакетов различных приложений, заточенный под работу с дистрибутивами openSUSE, Fedora. По умолчанию в Ubuntu не предусмотрены средства, позволяющие произвести инсталляцию сохраненного в этом пакете приложения, поэтому придется выполнять дополнительные действия, чтобы вся процедура прошла успешно. Ниже мы разберем весь процесс пошагово, детально рассказывая обо всем поочередно.

Если же все попытки отыскать другие библиотеки или хранилища оказались тщетными, ничего не остается делать, как пытаться инсталлировать RPM с помощью дополнительных средств.

Шаг 1: Добавление репозитория Universe

Порой для установки определенных утилит требуется расширение системных хранилищ. Одним из лучших репозиториев считается Universe, который активно поддерживается сообществом и периодически обновляется. Поэтому начать стоит именно с добавления новых библиотек в Ubuntu:

  1. Откройте меню и запустите «Терминал». Сделать это можно другим способом — просто нажмите на рабочем столе ПКМ и выберите нужный пункт.

В открывшейся консоли следует ввести команду и нажать на клавишу Enter.

Вам потребуется указать пароль учетной записи, поскольку действие выполняется через рут-доступ. При вводе символы отображаться не будут, вам надо только ввести ключ и нажать на Enter.

Будут добавлены новые файлы или же появится уведомление о том, что компонент уже включен во все источники.

Если файлы были добавлены, обновите систему, прописав команду .

Дождитесь завершения обновления и переходите к следующему шагу.

Шаг 2: Установка утилиты Alien

Для осуществления поставленной сегодня задачи мы будем задействовать простую утилиту под названием Alien. Она позволяет конвертировать пакеты формата RPM в DEB для дальнейшей их установки в Ubuntu. Процесс добавления утилиты не вызывает особых сложностей и выполняется одной командой.

  1. В консоли напечатайте .

Подтвердите добавление, выбрав вариант Д.

Ожидайте завершения скачивания и добавления библиотек.

Шаг 3: Преобразование пакета RPM

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

  1. Откройте место хранения объекта через менеджер, щелкните на нем ПКМ и выберите пункт «Свойства».

Здесь вы узнаете информацию о родительской папке. Запомните путь, он понадобится вам в дальнейшем.

Перейдите к «Терминалу» и введите команду , где user — имя пользователя, а folder — название папки хранения файла. Таким образом, с помощью команды cd произойдет переход в директорию и все дальнейшие действия будут осуществляться в ней.

Находясь в нужной папке, введите , где vivaldi.rpm — точное название нужного пакета. Учтите, что .rpm в конце дописывать обязательно.

Снова введите пароль и дождитесь окончания конвертирования.

Шаг 4: Установка созданного DEB-пакета

После успешной процедуры преобразования вы можете перейти в ту папку, где изначально хранился пакет RPM, поскольку и конвертирование производилось в этой директории. Там уже будет храниться пакет с точно таким же названием, но формата DEB. Он доступен для установки стандартным встроенным средством или любым другим удобным методом. Развернутые инструкции по этой теме читайте в отдельном нашем материале далее.

Подробнее: Установка DEB-пакетов в Ubuntu

Как видите, пакетные файлы RPM все-таки инсталлируются в Ubuntu, однако следует отметить, что некоторые из них несовместимы с этой операционной системой вовсе, поэтому ошибка появится еще на стадии конвертирования. При возникновении такой ситуации рекомендуется отыскать RPM-пакет другой архитектуры или попытаться все-таки найти поддерживаемую версию, созданную специально для Ubuntu.

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

RPM PBone Search

Ищете более продвинутый инструмент поиска, который поможет вам диагностировать проблемы с вашей системой? RPM PBone Search – сайт, предназначенный для более тщательного анализа системы.

Вы можете предоставить подробные параметры поиска, которые помогут вам определить зависимости RPM или что еще может отсутствовать. Вы можете найти RPM на основе журнала изменений RPM, сводки или тегов описания.

RPM PBone Search также позволяет вам контролировать размер самих репозиториев. Вы можете видеть, когда Fedora, openSUSE или другие основанные на RPM дистрибутивы добавляют RPM в свои репозитории и просматривают полный список того, что содержат эти репозитории.

Установка Docker на Ubuntu и Debian

Нижеприведенные инструкции предоставлены разработчиками в Docker Docs.

Первую установку и настройку Docker рекомендуем выполнить на тестовом, чистом сервере с предустановленной ОС. Для этих целей вы можете воспользоваться VPS-серверами от хостинга SpaceWeb с тестовым периодом в течение 3 дней.

Для установки Docker подойдет одна из следующих 64-разрядных версий ОС:

  • Debian Bullseye 11 (stable), Debian Buster 10 (oldstable), Raspbian Bullseye 11 (stable), Raspbian Buster 10 (oldstable)
  • Ubuntu Bionic 18.04 (LTS), Ubuntu Focal 20.04 (LTS), Ubuntu Groovy 20.10, Ubuntu Hirsute 21.04

Поддерживаемые архитектуры: x86_64 (или amd64), armhf, arm64 и s390x.

Есть несколько способов установки Docker, однако самый популярный и рекомендуемый разработчиками является установка с помощью репозитория. Перед установкой Docker на новой виртуальной машине или cервере необходимо настроить репозиторий.

Настройка репозитория Docker

Первым шагом обновите и установите необходимые пакеты

Обратите внимание, что для выполнения команд Docker необходимо использовать sudo

Добавьте официальный GPG ключ Docker:

Для финальной настройки репозитория используйте одну из следующих команд в зависимости от вашей архитектуры. Для использования каналов обновления nightly или test добавьте нужное название канала (nightly или test) в команду ниже после слова stable.

x86_64 / amd64armhfarm64s390x

Установка Docker Engine на Ubuntu и Debian

Обновляем пакеты

Устанавливаем последнюю версию Docker

Для проверки работоспособности Docker запустите тестовый контейнер с образом hello-world

Проверить текущий статус Docker можно с помощью команды:

В ответ получаем подобный вывод.

Don’t forget to Update!

It’s always good practice to ensure your system is up to date, especially after a fresh install.

The easiest way to do this is via the Software Updater app. Search for Software Updater via the app menu (the icon with 9 squares in the bottom corner of your window) and it will check for updates and apply them.

You can also update Ubuntu using the terminal.

Press CTRL+ALT+T to bring up a Terminal window (or click the terminal icon in the sidebar).

Type in:

You will be prompted to enter your login password.

This will check for updates and tell you if there are any that need applying. To apply any updates, type:

Type Y, then press ENTER to confirm to finish the update process.

RPM (Red Hat Package Manager)

Как мы уже говорили, RPM — это менеджер пакетов, используемый в операционных системах, основанных на Red Hat, это вся ветка дистрибутивов: Fedora, OpenSUSE, Red Hat, CentOS и т д. Изначально этот пакетный менеджер был разработан в компании Red Hat еще в 1997 году и только для их дистрибутива, но затем он распространился и в другие операционные системы. Вместо обычного сжатия здесь используется сжатие gzip по алгоритму cpio и особый формат файла архива, его мы рассмотрим ниже. Здесь в сравнении rpm или deb, первый кажется лучше, но не все так просто, если в системе нет нужных утилит, то вы не сможете распаковать такой пакет. Кроме cpio могут использоваться и другие алгоритмы сжатия, например, lzma или xz. В последнее время все программное обеспечение подписывается ключами для удостоверения подлинности, вот и RPM поддерживает подпись с помощью GPG и MD5. Технология PatchRPMs или DeltaRPMs позволяет грамотно обновлять RPM пакеты без больших затрат трафика.

Хоть и сказано, что файл rpm — это обычный архив, это не совсем так. Вначале файла находится заголовок, который идентифицирует файл как rpm архив, затем идет подпись, для проверки целостности и подлинности файла. Дальше идет заголовок, в котором содержаться данные о самом пакете, версия, архитектура, список файлов и т д. И только после всего этого идет сам архив с файлами пакета.

Для работы с RPM могут использоваться несколько различных пакетных менеджеров, это универсальная утилита rpm, пакетный менеджер zypper в OpenSUSE, dnf в Fedora, urpmi  в Mageia, yum — во многих дистрибутивах, основанных на Fedora.

Рассмотрим основные особенности RPM:

  • Автоматическое разрешение зависимостей в большинстве случаев корректно
  • Файл архива имеет специальный формат
  • Не поддерживается реализация зависимостей с выбором завистимости от пакет1 или пакет2.
  • Не поддерживаются рекомендованные пакеты
  • Позволяет настроить зависимость от файла, а не пакета
  • Все данные об установленных пакетах хранятся в базе данных поэтому при надобности можно проверить контрольные суммы
  • Поддерживаются сценарии как до, так и после установки программ
  • Поддерживается формат SRPM, который содержит в себе исходники программы все патчи с инструкции по сборке, позволяющие собрать программу из исходников на локальной машине.
  • Отличная поддержка Multilib пакетов
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector