Установка RPM-пакетов на Debian 13, 12, 11: полное руководство

RPM (Red Hat Package Manager) — это формат пакетов, используемый в дистрибутивах семейства Red Hat (Fedora, CentOS, RHEL, openSUSE). Debian же использует собственный формат DEB. Обычно установить RPM-пакет на Debian напрямую нельзя — но это можно сделать через конвертацию.

В этом руководстве я покажу, как установить RPM-пакеты на Debian с помощью утилиты Alien. Alien конвертирует RPM-пакеты в DEB-формат, после чего их можно установить штатными средствами Debian.

⚠️ Важное предупреждение: Конвертация RPM в DEB — это крайняя мера, когда у программы нет нативного DEB-пакета, Flatpak, Snap или AppImage. Всегда сначала ищите программу в официальных репозиториях Debian:

apt search имя_программы
МетодБезопасностьАвтообновленияСложностьКогда использовать
Родной
DEB-пакет
✅ Высокая✅ Да (APT)НизкаяВсегда, когда
возможно
Flatpak / Snap✅ Высокая
(изоляция)
✅ ДаСредняяЕсли нет
DEB-пакета
Конвертация
RPM (Alien)
⚠️ Средняя❌ Нет (вручную)ВысокаяТолько когда нет
других вариантов

Оглавление

Предварительные требования

Перед установкой убедитесь, что:

  • У вас есть доступ к интернету
  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

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

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

Установка Alien (конвертер RPM → DEB)

Шаг 1: Обновите систему

sudo apt update && sudo apt upgrade -y

Шаг 2: Установите пакет alien

sudo apt install -y alien

Что делает: Устанавливает alien и его зависимости (включая rpm для чтения RPM-файлов и debhelper для сборки DEB-пакетов).

Шаг 3: Проверьте установку

alien --version

Ожидаемый вывод (зависит от версии Debian):

  • Debian 13: alien version 8.95.8
  • Debian 12: alien version 8.95.6
  • Debian 11: alien version 8.95.4

⚠️ Важное предупреждение: Не пытайтесь установить RPM-пакет напрямую через sudo rpm -i package.rpm. RPM не управляет базой данных пакетов Debian (dpkg). Это может привести к конфликтам файлов и невозможности корректно удалить пакет. Всегда конвертируйте RPM в DEB через Alien.

Конвертация и установка RPM-пакета

Шаг 1: Скачайте RPM-пакет

Скачайте RPM-файл с официального сайта разработчика. Убедитесь, что архитектура соответствует вашей системе:

dpkg --print-architecture

Что делает: Показывает архитектуру системы (amd64 для 64-битных систем).

💡 Примечание: В RPM-мире x86_64 соответствует amd64 в Debian.

Шаг 2: Проверка RPM-файла

Проверка типа файла:

file ваш-пакет.rpm

Для нормального RPM: RPM v3.0 bin i386/x86_64 имя

Для повреждённого файла: HTML document, ASCII text

Проверка метаданных RPM:

rpm -qip ваш-пакет.rpm

Что ищем: Имя пакета, версию, архитектуру, описание.

Проверка архитектуры RPM:

rpm -qip ваш-пакет.rpm | grep -E 'Architecture|Group'

Что ищем: Architecture: x86_64 (должно соответствовать вашей системе). Если noarch — безопасно, если i386 или arm64 — проверьте, что это ваша архитектура.

Проверка списка файлов:

rpm -qlp ваш-пакет.rpm | head -20

Что ищем: Пути, куда будут установлены файлы. Осторожно, если файлы заменяют системные.

Проверка скриптов RPM (важно!):

rpm -qp --scripts ваш-пакет.rpm

Что ищем: Если вывод не пустой — в RPM есть скрипты (установки, удаления). Они могут быть написаны для Red Hat-систем и не работать на Debian. Будьте осторожны.

Шаг 3: Перейдите в папку с RPM-файлом

cd ~/Downloads

Шаг 4: Конвертируйте RPM в DEB

sudo alien -d ваш-пакет.rpm

Что делает: Флаг -d явно указывает создание DEB-пакета (это поведение по умолчанию, но лучше указать явно).

Результат: Будет создан файл ваш-пакет_версия-2_amd64.deb (Alien увеличивает версию, чтобы отличать конвертированные пакеты от родных).

Дополнительные флаги Alien:

ФлагНазначение
-dСоздать DEB-пакет (по умолчанию)
-rСоздать RPM-пакет (обратная конвертация)
-tСоздать пакет для Slackware (.tgz)
-cВключить скрипты из оригинального RPM
(осторожно!)
-kНе увеличивать версию
(сохранить оригинальную)

Шаг 5: Проверьте сгенерированный DEB-пакет

Проверка метаданных DEB:

dpkg-deb -f ваш-пакет_версия-2_amd64.deb Package Version Architecture Depends

Что делает: Показывает имя пакета, версию, архитектуру и зависимости.

Проверка списка файлов DEB:

dpkg-deb -c ваш-пакет_версия-2_amd64.deb | head -20

Шаг 6: Установите полученный DEB-пакет

sudo apt install ./ваш-пакет_версия-2_amd64.deb

Что делает: Устанавливает сконвертированный пакет. Префикс ./ обязателен — без него APT будет искать пакет в репозиториях, а не в текущей папке.

Шаг 7: Проверьте установку

dpkg -l | grep имя-пакета

Что делает: Проверяет, установлен ли пакет (статус ii = installed ok).

Шаг 8: Проверьте, какие файлы установил пакет

dpkg -L имя-пакета | head -20

Пример полного цикла конвертации

# Переходим в папку Downloads
cd ~/Downloads

# Скачиваем RPM (пример)
wget https://example.com/package-1.0.0-1.x86_64.rpm

# Проверяем тип файла
file package-1.0.0-1.x86_64.rpm

# Проверяем метаданные RPM
rpm -qip package-1.0.0-1.x86_64.rpm

# Проверяем список файлов RPM
rpm -qlp package-1.0.0-1.x86_64.rpm | head -20

# Проверяем скрипты RPM (важно!)
rpm -qp --scripts package-1.0.0-1.x86_64.rpm

# Конвертируем RPM в DEB
sudo alien -d package-1.0.0-1.x86_64.rpm

# Проверяем метаданные DEB
dpkg-deb -f package-1.0.0-2_amd64.deb Package Version Architecture Depends

# Проверяем список файлов DEB
dpkg-deb -c package-1.0.0-2_amd64.deb | head -20

# Устанавливаем DEB-пакет
sudo apt install ./package-1.0.0-2_amd64.deb

# Проверяем, что пакет установлен
dpkg -l | grep package

# Проверяем, какие файлы установил пакет
dpkg -L package-name | head -20

Решение типичных проблем

8.1 Ошибка: Unknown file type

Симптом: alien сообщает, что не может определить тип файла.

Причина: RPM-файл повреждён или это не RPM (например, скачалась HTML-страница с ошибкой).

Пошаговое решение:

Шаг 1: Проверьте тип файла:

file ваш-пакет.rpm

Для нормального RPM: RPM v3.0 bin i386/x86_64 имя

Для повреждённого файла: HTML document, ASCII text

Шаг 2: Если файл повреждён — скачайте его заново.

8.2 Ошибка: Зависимости не удовлетворены

Симптом: При установке DEB-пакета apt сообщает о неудовлетворённых зависимостях.

Причина: RPM-пакет требует библиотеки, которые в Debian называются иначе или отсутствуют.

Пошаговое решение:

Шаг 1: Попробуйте исправить зависимости автоматически:

sudo apt --fix-broken install

Шаг 2: Если не помогло, установите недостающие библиотеки вручную:

apt search имя-библиотеки
apt-cache policy имя-библиотеки
sudo apt install найденный-пакет

Шаг 3: Повторите установку DEB-пакета.

8.3 Ошибка: Пакет установлен, но программа не запускается

Симптом: Установка прошла успешно, но при запуске программа выдаёт ошибку или не запускается.

Причина: Не хватает разделяемых библиотек (shared libraries), которые не были установлены как зависимости.

Пошаговое решение:

Шаг 1: Найдите путь к исполняемому файлу программы:

which имя-программы

Шаг 2: Проверьте, каких библиотек не хватает:

ldd /путь/к/бинарному/файлу | grep "not found"

Пример вывода:

libexample.so.3 => not found
libcrypto.so.1.1 => not found

Шаг 3: Найдите и установите соответствующие Debian-пакеты:

apt search libexample
sudo apt install libexample3

Шаг 4: После установки библиотек проверьте снова:

ldd /путь/к/бинарному/файлу | grep "not found"

(отсутствие вывода = все библиотеки найдены)

8.4 Ошибка: APT не может найти файл .deb

Симптом: При попытке установки sudo apt install package.deb появляется ошибка Unable to locate package.

Причина: Вы не указали ./ перед именем файла.

Решение: Используйте правильный синтаксис:

sudo apt install ./package.deb

Что делает: ./ указывает APT, что пакет находится в текущей директории, а не в репозиториях.

8.5 Проблема: Нет автообновлений для конвертированных пакетов

Симптом: Вы установили программу через Alien, но она не обновляется через apt upgrade.

Причина: APT не отслеживает пакеты, установленные из локальных DEB-файлов, как пакеты из репозиториев.

Решение:

Шаг 1: Периодически проверяйте сайт разработчика на наличие новых версий RPM.

Шаг 2: Повторите процесс конвертации и установки для новой версии.

Шаг 3: Если программа важна и обновляется часто — рассмотрите альтернативы:

  • Поищите нативный DEB-пакет
  • Установите через Flatpak (если есть)
  • Установите через Snap (если есть)

Ограничения Alien

ОграничениеВлияниеЧто делать
Нет автоматических
обновлений
APT не отслеживает
обновления
Вручную проверять новые
версии
Несовместимость
зависимостей
RPM требует библиотек с
другими именами
Искать Debian-аналоги через
apt search и apt-cache policy
Проблемы со скриптамиСкрипты из RPM могут не
работать на Debian
Использовать -c осторожно
или отказаться от него
Архитектурные проблемыЖёстко закодированные путиПроверять через dpkg -L

Удаление Alien и конвертированных пакетов

Удаление сконвертированного пакета

sudo apt remove имя-пакета

Чтобы удалить вместе с конфигурационными файлами:

sudo apt purge имя-пакета

Удаление конвертированных файлов из рабочей директории

rm -rf ~/rpm-conversion

Удаление самого Alien

sudo apt remove alien
sudo apt autoremove

Проверка удаления Alien

alien --version

Ожидаемый вывод: bash: alien: command not found

Чек-лист: что проверить после установки

  • [ ] Alien установлен: alien --version показывает версию
  • [ ] RPM-файл не повреждён: file package.rpm показывает RPM
  • [ ] Архитектура RPM соответствует системе
  • [ ] Скрипты RPM проверены: rpm -qp --scripts package.rpm
  • [ ] DEB-файл проверен: dpkg-deb -f и dpkg-deb -c
  • [ ] Конвертация прошла успешно: создался .deb-файл
  • [ ] DEB-пакет установлен: dpkg -l | grep package-name показывает ii
  • [ ] Файлы пакета видны: dpkg -L package-name выводит список
  • [ ] Программа запускается: тестовый запуск не выдаёт ошибок
  • [ ] Библиотеки не отсутствуют: ldd /path/to/binary | grep "not found" ничего не выводит
  • [ ] APT не в сломанном состоянии: sudo apt --fix-broken install не выводит ошибок

Часто задаваемые вопросы (FAQ)

Вопрос: Можно ли конвертировать любой RPM-пакет?

Ответ: Большинство — да. Но сложные пакеты (с интеграцией в систему, сервисами) могут работать некорректно даже после успешной конвертации.

Вопрос: Почему Alien увеличивает версию (1.0.0-1 → 1.0.0-2)?

Ответ: Чтобы отличать конвертированные пакеты от родных Debian-пакетов с тем же именем и версией. Отключить можно флагом -k.

Вопрос: Безопасно ли использовать -c (скрипты из RPM)?

Ответ: Не всегда. Скрипты могут содержать команды, специфичные для Red Hat-систем (службы, пути), что может повредить Debian. Используйте только если точно знаете, что делаете. Всегда проверяйте скрипты через rpm -qp --scripts перед конвертацией.

Вопрос: Как обновлять программу, установленную через Alien?

Ответ: Только вручную: скачать новый RPM, сконвертировать и установить поверх.

Вопрос: Есть ли альтернативы Alien для запуска RPM-программ?

Ответ: Да: dnf из Toolbox или Distrobox (запуск контейнера с Fedora), но это более сложные методы. Проще найти Flatpak/Snap/DEB-версию.

Заключение

Теперь вы умеете устанавливать RPM-пакеты на Debian через Alien. Помните:

  • Native DEB + репозитории Debian — лучший вариант
  • Flatpak / Snap — хорошая альтернатива
  • Alien — крайний случай, когда ничего другого нет

Что дальше?

  • Изучите установку Flatpak на Debian как альтернативу сторонним пакетам
  • Узнайте о Snap-пакетах на Debian
  • Настройте автоматические обновления для родных пакетов

Связанные статьи: