Системы Redhat/Fedora/CentOS требуют для установки пакетов .rpm. Иногда вы можете обнаружить, что пакет RPM недоступен для нужной вам программы или утилиты, но вместо него доступен пакет DEB. Пакеты DEB используются для установки в системах Ubuntu/Debian и не могут быть использованы непосредственно в системах Redhat/Fedora/CentOS. Поэтому вам нужно будет преобразовать DEB в RPM-пакет, чтобы продолжить установку. В этой статье мы рассмотрим, как конвертировать файлы DEB в RPM в Linux.
Как преобразовать файлы DEB в RPM в Linux
Мы будем использовать программу Alien для преобразования .deb в .rpm пакет.
Установка Alien и его зависимостей
Мы перечислили шаги как для RPM, так и для DEB-системы. Вы можете использовать любую из них в зависимости от вашей системы Linux.
Redhat/CentOS
Откройте терминал и выполните следующую команду для установки программы Alien. Сначала нам нужно включить EPEL и рабочий стол Nux.
1 2 | yum install epel-release rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro |
Установите последнюю версию рабочего стола Nux. Мы установили версию 0.5. Вы можете установить другую версию в соответствии с вашими требованиями.
1 | rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm |
Наконец, установите пакет alien.
1 | yum update && yum install alien |
Fedora
В Fedora вам нужно выполнить всего одну команду, показанную ниже.
1 | yum update && yum install alien |
Debian/Ubuntu
Вот команда для установки пакета alien в Ubuntu/Debian Linux.
1 | sudo aptitude install alien |
Преобразование файлов DEB в файлы RPM
Вы можете использовать опцию -r для преобразования DEB в RPM-файлы. Вот пример. Мы используем команду wget для загрузки .deb файла, а затем используем команду alien двумя разными способами для преобразования его в RPM файл. Они оба дают одинаковый результат.
1 2 | wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb alien -r dateutils_0.3.1-1.1_amd64.deb |
ИЛИ
1 | alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb |
Установка конвертирования RPM-файла
Если вы попытаетесь напрямую установить сгенерированный выше RPM-файл, иногда он может выдать сообщение об ошибке из-за совместимости параметров пакета. В сообщении будут перечислены 1 или несколько файлов, вызывающих конфликт, например
1 2 3 4 | Preparing ... file / from install of dateutils_0.3.1-1.1_amd64.deb conflicts with ... file /test.fgh from install of dateutils_0.3.1-1.1_amd64.deb conflicts with ... ... |
Поэтому нам нужно выполнить следующую команду, чтобы включить репозиторий epel-testing и установить инструмент rpmrebuild для изменения параметров установки пакета.
1 | yum --enablerepo=epel-testing install rpmrebuild |
Теперь выполните следующую команду для пересборки пакета
1 | rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm |
Это откроет настройки пакета в текстовом редакторе. Перейдите в раздел %files% и удалите строки, которые относятся к конфликтующим файлам, перечисленным выше.
1 2 3 4 5 | %files% %dir %attr... "/" %dir %attr... "/test.fgh" |
Сохраните и выйдите из файла. При выходе вас спросят, хотите ли вы продолжить перестройку. Введите Y, чтобы продолжить.
После завершения пересборки вы можете установить его должным образом.
1 | rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm |
После завершения установки вы можете проверить ее с помощью следующей команды.
1 | ls -l /usr/bin | grep dateutils |
Заключение
Вот и все. В этой статье мы узнали, как преобразовать DEB в RPM-файл и установить его в системах Redhat/Fedora/CentOS Linux.