Deb based linux систем

Что лучше deb или rpm

Установка программного обеспечения — очень важный момент в работе с операционной системой. Сейчас есть две самые распространенные системы установки программного обеспечения. Это используемая в Debian и всех ее производных, в том числе и в Ubuntu — deb, а также разработанная в RedHat и используемая в Red Hat и всех основанных на ней дистрибутивов — rpm.

Обе системы и deb и rpm полнофункциональные, легкие в использовании и имеют очень большое количество программного обеспечения. Многих пользователей интересует в чем разница между этими двумя системами. Но в интернете мы находим только общие сведения вроде того что уже выше написано. В этой статье мы попытаемся разобраться что лучше deb или rpm. Также попытаемся вникнуть в суть их различий.

Основы

С точки зрения пользователя, эти два варианта установки пакетов не имеют очень больших различий. Оба файла и Deb и Rpm — это всего лишь архивы, созданные с помощью утилиты ar. Эти архивы включают в себя файлы программ, исполняемые файлы, библиотеки, или файлы конфигурации. Кроме этого, в каждый пакет входят метаданные системы управления пакетами, именно этим и отличаются rpm и deb. Собственно файлы пакетов отличаются в основном только этим, но еще есть система управления пакетами. А там уже различий в базе данных намного больше.

Давайте рассмотрим каждую систему управления пакетами подробнее, а затем сравним что же в них особенного, и что лучше rpm или deb.

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 пакеты без больших затрат трафика.

Читайте также:  Полное форматирование hdd linux

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

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

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

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

Deb (Debian Package Manager)

Файлы deb — это архивы, созданные с помощью утилиты ar. Они могут быть сжаты с помощью GZIP, Bzip2, lzma, или XZ. Чаще всего для управления пакетами deb в терминале используется утилита dpkg, Но могут и другие, например, gdebi, apt, aptitude и т д. Deb пакеты используются для установки программного обеспечения во многих операционных системах, основанных на Debian, это ветка Ubuntu со многими основанными на ней дистрибутивами и так далее. Поскольку Ubuntu в последнее время набирает популярность среди новичков, то пакетов для нее становится больше.

Из особенностей системы управления пакетами DEB можно назвать использование приоритетов для классификации пакетов по важности, а также поддержку рекомендованных пакетов. Это пакеты, которые не находятся в зависимостях программы, но желательны для установки вместе с ней. Рекомендованные утилиты устанавливаются автоматически в таком инструменте, как apt. Чтобы сравнить rpm vs deb рассмотрим особенности deb:

  • Файл пакета — обычный архив
  • Поддержка приоритетов для пакетов различной важности
  • Поддержка рекомендованных пакетов
  • Не поддерживаются файловые зависимости
  • Не поддерживается технология Delta для экономии трафика
Читайте также:  Linux mint поменять пароль root

Аналоги команд

Давайте рассмотрим аналоги команд для выполнения одних и тех же действий в этих системах управления пакетами с помощью утилит rpm и dpkg:

Источник

Как устанавливать программы в Linux. Установочные пакеты

Это два самых популярных пакетов установки программного обеспечения в Линукс.

DEB это пакеты Debian подобных дистрибутивов: Debian, Ubunta, Mint, Q4OS и тд.

RPM это пакеты дистрибутивов на базе RedHat: Fedora, ROSA, OpenMandriva, Mandrake Linux и тд.

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

RPM

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

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

Большинство зависимостей разрешаются в автоматическом режиме корректно. Хотя еще несколько лет назад это была огромная проблема.

Но, есть большая проблема, что для разных дистрибутивов, которые основаны на РедХат могут быть разные программы, а библиотеки носить разные названия. Что создает огромные проблемы для пользователя. Получается что пользователь, если программы нет в официальном репозитории, должен искать rpm именно для своего дистрибутива.

DEB

По большому счету лишены недостатков rpm, практически все программы совместимы со всеми дебиан дистрибутивами. Один и тот же пакет одинаково хорошо ставится и работает как на Debian 6, так и на Ubuntu 19.04. Стандарты процесса построения пакетов и работы с ними, заложенные в старых Debian дистрибутивах, остаются актуальными и в новомодных Linux Mint и elementary OS

Сам пакет представляет из себя обычный архив. Без извратов в виде заголовков.

Существуют специальные утилиты для конвертации одного пакета в другой.

.tgz, tar.gz и другие

Это могут быть как бинарные файлы со скриптом установки, так и архивы исходного кода. Где программа не скомпилирована.

Скажем, дистрибутивы на базе ArchLinux работают на tgz пакетах, с помощью утилиты pacman и графической оболочки pamac . Это тоже архив с банарными файлами по аналогии deb и rpm.

Источник

How to Create DEB Packages for Debian/Ubuntu

Most of the software on Linux is distributed as packages. Creating DEB packages for Debian-based distros is easier than you might think.

Читайте также:  Linux mint gnome desktop

programmer creating a debian package

Readers like you help support MUO. When you make a purchase using links on our site, we may earn an affiliate commission. Read More.

A DEB package is an archive containing all the files including the compiled version of the applications, source codes, configuration files, images, and installation commands. DEB files in Debian-based operating systems like Ubuntu and Kali Linux are equivalent to the EXE files found in Windows.

Here’s how you can develop your own DEB packages for a Debian-based Linux distro.

Step 1: Installation of Required Packages

Preparing a Debian package requires some programs. To begin, install these utilities on your system:

sudo apt install build-essential binutils lintian debhelper dh-make devscripts 

Step 2: Package Selection

Before creating a Debian package (DEB) for a program, you should consider a few points:

    Check whether the package you’re planning to create is already in the Debian repositories:

apt-cache search package-name 

Step 3: Begin to Prepare the Package

Firstly, create a new directory under your home directory to avoid confusion.

cd /home
mkdir package
cd package

Then extract the tar archive containing the source code of the program you’re going to package under this directory. For demonstration, we’ll use the rsyslog archive.

Navigate to the newly-created directory using the cd command:

Usually, the source code of the program comes with INSTALL and README files. Even if you know what the program is and how it works, it will be beneficial for you to spend some time reading these files.

There are commands such as ./configure make and make install that can easily install such archives on your system. But there are several parameters for the ./configure option that you should be aware of. You can use the ./configure —help command to get such information.

Step 4: Adding Developer Information

Before creating a DEB package for your program, pay attention to the package name and version number. You will also need to add some packager information when creating a package. For this, you must export your information with the following commands:

export DEBEMAIL="your@mail.com"
export DEBFULLNAME="Name Lastname"

After this, use the magic command dh_make.

After issuing the dh_make command, you should select your package type and press Enter.

rsylog-dh-make-usage

Following this step, you will notice a directory in a parent directory with the «.orig» extension. If this doesn’t work, try running the dh_make command with the —createorig parameter.

Источник

Оцените статью
Adblock
detector