Поиск по сайту:

Как конвертировать пакет из RPM в DEB и из DEB в пакет RPM с помощью Alien


Как я уверен, вы уже знаете, существует множество способов установки программного обеспечения в Linux: использование системы управления пакетами, предоставляемой вашим дистрибутивом (aptitude, yum или zypper, если назвать несколько примеров), компиляция из исходного кода (хотя и несколько редкость в наши дни, это был единственный метод, доступный на заре Linux), или использование инструмента низкого уровня, такого как dpkg или rpm с .deb< и .rpm автономные предварительно скомпилированные пакеты соответственно.

В этой статье мы познакомим вас с alien, инструментом, который конвертирует различные форматы пакетов Linux, с .rpm в .deb (и наоборот). наоборот) является наиболее распространенным использованием.

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

Например, alien однажды спас меня, когда я искал драйвер .deb для струйного принтера и не смог его найти – производитель предоставил только пакет .rpm. Я установил Alien, преобразовал пакет и вскоре смог без проблем пользоваться своим принтером.

Тем не менее, мы должны уточнить, что эту утилиту не следует использовать для замены важных системных файлов и библиотек, поскольку в разных дистрибутивах они настраиваются по-разному. Используйте Alien только в крайнем случае, если предложенные в начале этой статьи методы установки не подходят для требуемой программы.

И последнее, но не менее важное: мы должны отметить, что хотя в этой статье мы будем использовать CentOS и Debian, известно, что Alien также работает в Slackware. и даже в Solaris, помимо первых двух дистрибутивов и их соответствующих семейств.

Шаг 1. Установка Alien и зависимостей

Чтобы установить alien в CentOS/RHEL 7, вам необходимо включить EPEL и Nux Репозитории Dextop (да, это Dextop, а не Desktop) в следующем порядке:

yum install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

Последняя версия пакета, поддерживающего этот репозиторий, на данный момент — 0.5 (опубликована 10 августа 2015 г.). Прежде чем продолжить, вам следует проверить http://li.nux.ro/download/nux/dextop/el7/x86_64/, чтобы узнать, существует ли более новая версия:

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

тогда делай,

yum update && yum install alien

В Fedora вам нужно будет выполнить только последнюю команду.

В Debian и его производных просто выполните:

aptitude install alien

Шаг 2. Преобразование пакета .deb в .rpm

Для этого теста мы выбрали dateutils, который предоставляет набор утилит date и time для работы с большими объемами финансовых данных. Мы загрузим пакет .deb в нашу систему CentOS 7, преобразуем его в .rpm и установим:

cat /etc/centos-release
wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

Важно: (Обратите внимание, что по умолчанию Alien увеличивает младший номер версии целевого пакета. Если вы хотите переопределить это поведение, добавьте – флаг сохранения версии).

Если мы попытаемся установить пакет сразу, мы столкнемся с небольшой проблемой:

rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

Чтобы решить эту проблему, мы включим репозиторий epel-testing и установим утилиту rpmrebuild для редактирования настроек пересобираемого пакета:

yum --enablerepo=epel-testing install rpmrebuild

Тогда беги,

rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

Откроется текстовый редактор по умолчанию. Перейдите в раздел %files и удалите строки, относящиеся к каталогам, указанным в сообщении об ошибке, затем сохраните файл и выйдите:

При выходе из файла вам будет предложено продолжить перестроение. Если вы выберете Y, файл будет перестроен в указанный каталог (отличный от текущего рабочего каталога):

rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

Теперь вы можете приступить к установке пакета и проверке как обычно:

rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
rpm -qa | grep dateutils

Наконец, вы можете перечислить отдельные инструменты, включенные в dateutils, и также просмотреть соответствующие справочные страницы:

ls -l /usr/bin | grep dateutils

Шаг 3. Преобразование пакета .rpm в .deb

В этом разделе мы покажем, как преобразовать .rpm в .deb. В 32-битной версии Debian Wheezy загрузим пакет .rpm для оболочки zsh из ОС CentOS 6 . репозиторий. Обратите внимание, что эта оболочка по умолчанию недоступна в Debian и его производных.

cat /etc/shells
lsb_release -a | tail -n 4

wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

Сообщения об отсутствии подписи можно смело игнорировать:

Через несколько секунд файл .deb должен быть создан и готов к установке:

dpkg -i zsh_4.3.11-5_i386.deb

После установки вы можете убедиться, что zsh добавлен в список допустимых оболочек:

cat /etc/shells

Краткое содержание

В этой статье мы объяснили, как преобразовать .rpm в .deb и наоборот, чтобы установить пакеты в крайнем случае, когда такие программы недоступны в репозиториях или в виде распространяемого исходного кода. Вы захотите добавить эту статью в закладки, потому что всем нам рано или поздно понадобится инопланетянин.

Не стесняйтесь поделиться своими мыслями об этой статье, используя форму ниже.