Что лучше 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 пакеты без больших затрат трафика.
Хоть и сказано, что файл 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 для экономии трафика
Аналоги команд
Давайте рассмотрим аналоги команд для выполнения одних и тех же действий в этих системах управления пакетами с помощью утилит rpm и dpkg:
Ликбез по установке Arch Linux.
Приветствую вас, юные, не юные, опытные, неопытные юзеры ОС на базе ядра, придуманного одним человеком, способным поднять целую серверную и прочего электронную индустрию — Линусом Торвальдс ом!
Итак, однажды в параллельной вселенной жизни типичный юзер Линукс, которого достали убунты-минты-дебианы, узнает о такой ОС как Arch. Большинство пользователей этой системы будут ему утверждать, что данная система является гиковской. Что, конечно же, правда. Однако, причина, по которой можно заинтересоваться этим — это её мобильность. В сравнении с готовыми ОС, Arch занимает НАМНОГО меньше места и в нём может быть установлено только то, что выгодно только юзеру, его можно настроить целиком и полностью для себя, у него есть такая замечательная вещь, как Arch User Repository (AUR).
И вот, наступает решающий момент. Вы захотели попробовать эту прекрасную ОС, но возникает проблема, характерная для всех гиковских систем — вас шлют нах. кхм, в Вики. Конечно, вы можете просидеть весь день, изучая каждый пункт и его параметры. Дело ваше. Цель это йстатьи — крайне просто и разжевано объяснить юзеру deb или rpm базированных ОС как установить «каркас» вашей системы на базе Arch Linux. Итак, приступим.
Получаем образ ОС.
Заходите на сайт Arch Linux, нажимаете вверху справа клавишу Download (Загрузить). Перед вами появляются множество вариантов для приобретения iso образа с установочными файлами. Torrent (торрент), magnet (ссылка для торрента без скачивания файла .torrent, я обычно выбираю это), либо же ссылки на региональные серверы для прямого скачивания. Выбираете вашу страну, нажимаете на сайт (в моём случае это Russia — yandex.ru). Нажимаем на iso файл. Загрузка пошла.
После окончания загрузки iso файла его нужно записать на флешку объёмом с 1 гигабайта. Если вы юзер Windows — вам поможет программа под названием Rufus. Интерфейс интуитивен и понятен. Выбираете раздел с флешком, выбираете iso. Нажимаете start. Соглашаетесь на форматирование (ФАЙЛЫ УДАЛЯТСЯ С ФЛЕШ) и ждёте завершения записи.
Если же вы юзер Linux — вам поможет gnome-disks-utility. Правой кнопкой мыши по iso — Запись на флеш — выбрали флеш и нажали Восстановить. Написали пароль root, ждём окончания записи. Или же утилита DD. Открываем терминал, вводим:
sudo dd if=/путь_до_образа/образ_системы.iso of=/dev/sdX
Х замените на букву нужного носителя.
Далее нам нужно загрузиться с флешки. Делаем перезапуск компьютера, во время включения ПК нажимайте клавишу на клавиатуре, которая соответствует у вас за Boot Menu. На каждой материнской плате эта клавиша своя. В крайнем случае — загуглите вашу материнскую плату и посмотрите клавиш. У меня это клавиша Esc.
Итак, у вас появился список устройств для загрузки, выбирайте вашу флешку (если у вас есть поддержка UEFI — перед названием флешки появится соответствующая надпись UEFI). Нажимаем Enter. Мы загружаемся с флешки. Нас встречает консоль
Первым дело было бы хорошо русифицировать систему, с которой мы загрузились:
loadkeys ru
setfont cyr-sun16 — устанавливаем шрифт, совместимый с русской локалью
nano /etc/locale.gen
Раскомментируем строку #ru_RU.UTF-8 Utf-8 (убрать решётку). После, нажимаем сочетание клавиш Ctrl + O, Ctrl + X.
locale-gen — генерируем русскую локаль
export LANG=ru_RU.UTF-8 — вкидываем локаль во все конфигуровочные файлы.
Распределяем хранилища.
В моём случае система с поддержкой UEFI и со SWAP на 10гб.
mkfs.fat -F 32 /dev/sda1 (для работы с UEFI требуется раздел Fat32 с размером как минимум 512мб)
mkfs.ext4 /dev/sda2 — раздел с Arch Linux
mkswap /dev/sda3 — SWAP раздел. Размер равен половине размера вашей оперативной памяти.
Если же у вас нет UEFI — достаточно ext4 и SWAP раздела
Теперь мы и монтируем, то есть подключаем к live системе.
mount /dev/sda2 /mnt
раздел с корнем прикрепился к разделу с Arch Linux. Прекрасно! Делаем папку для следующих разделов:
mount /dev/sda1 /mnt/boot
Включаем SWAP: swapon /dev/sda3
Настраиваем заркала для скачивания системных файлов.
nano /etc/pacman.d/mirrorlist
Cохраняем. Выходим из nano.
Устанавливаем базовую ОС.
pacstrap -i /mnt base base-devel linux linux-headers nano dhcpcd grub
Ждём. Установка займёт несколько минут.
Облдатели системы с UEFI должны установить соотвествующий пакет для его работы:
arch-chroot /mnt pacman -S efibootmgr
Генерируем разделы, что бы система понимала что и где есть:
genfstab -p /mnt » /mnt/etc/fstab
Переходим в раздел с установленной системой:
arch-chroot /mnt /bin/bash
Ставим поддержку английской и русской локали:
nano /etc/locale.gen
Раскомментируем #en.UTF-8 UTF-8 и #ru_RU.UTF-8 UTF-8
Сохраняем и выходим. Делаем генерацию:
Открываем конфигуровочный файл, где нужно вставить хук keymap для поддержки локали в консоли:
nano /etc/mkinitcpio.conf
Находим раздел HOOKS, прописываем keymap
(юзерам Radeon стоит написать radeon в разделе modules)
(юзерам Radeon нужно установить пакет linux-firmware для работы драйвера: sudo pacman -S linux-firmware)
Загружаем диск с модулями ядра, где прописаны все настройки:
mkinitcpio -p linux
grub-install /dev/sda (для Bios)
grub-install —target=x86_64-efi —efi-directory=/boot/EFI —bootloader-id=grub (для UEFI)
Создаём конфигуровочный файл для Grub:
grub-mkconfig -o /boot/grub/grub.cfg
Устанавливаем пароль root:
Выходим из системы: exit
Отмонтируем разделы нашей готовой системы:
Перезагружаем пк: reboot
Настройка базовой ОС.
После перезагрузки заходим в рут-пользователя. Настраиваем имя нашего ПК:
hostnamectl set-hostname myhostname
(myhostname замените на свое).
timedatectl set-timezone Europe/Moscow
localectl set-keymap ru
setfont cyr-sun16
localectl set-locale LANG=»ru_RU.UTF-8″
export LANG=ru_RU.UTF-8
Добавляем строку FONT=cyr-sun16 в /etc/vconsole.conf.
Обновляем диск с конфигами ядра:
mkinitcpio -p linux
grub-mkconfig -o /boot/grub/grub.cfg
nano /etc/pacman.conf
Cтавим поддержку 32битных приложений. Расскомментируем:
Добавляем юзера (myysername замените на свое):
useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video,wheel -s /bin/bash myusername
passwd myusername
Устанавливаем поддержку интернета:
systemctl enable dhcpcd
systemctl start dhcpcd
pacman -S sudo
В файле /etc/sudoers раскомментируем строку # %wheel ALL=(ALL) ALL
Выходим из рут пользователя, заходим в свой профиль.
sudo pacman -S xorg-server xorg-xinit xorg-apps mesa-libgl xterm
Для 64 битных систем необходимо установить пакет lib32-mesa-libgl:
sudo pacman -S lib32-mesa-libgl
sudo pacman -S xf86-video-intel
sudo pacman -S nvidia-dkms nvidia-utils lib32-nvivia-utils
Юзеры AMD могут ничего не ставить. Ядро поддерживает оборудование Radeon из коробки после настроек в модулях.
В своём случае я устанавливаю XFCE и Lightdm. Вы же смотрите в соответствии с вашим менеджером. Гуглите название вашего менеджера и читайте какие файлы нужно установить в Arch Wiki.
sudo pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter
sudo systemctl enable lightdm.service
Установка необходимых шрифтов:
sudo pacman -S ttf-liberation ttf-dejavu noto-fonts noto-fonts-cjk noto-fonts-emoji
Можно делать перезапуск ПК. После перезагрузки lightdm запросит у вас пароль и вы зайдёте в xfce.
Поздравляю тебя, юзер! Ты установил Arch Linux!
Огромное спасибо оригинальному автору инструкции за такой прекрасный гайд, благодаря которому я познал Arch Linux!