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-пакета
Шаг 1: Скачайте RPM-пакет
Скачайте RPM-файл с официального сайта разработчика. Убедитесь, что архитектура соответствует вашей системе:
dpkg --print-architecture
Что делает: Показывает архитектуру системы (amd64 для 64-битных систем).
Примечание: В RPM-мире x86_64 соответствует amd64 в Debian.
Шаг 2: Перейдите в папку с RPM-файлом
cd ~/Downloads
Шаг 3: Конвертируйте RPM в DEB
sudo alien -d ваш-пакет.rpm
Что делает: Флаг -d явно указывает создание DEB-пакета (это поведение по умолчанию, но лучше указать явно).
Результат: Будет создан файл ваш-пакет_версия-2_amd64.deb (Alien увеличивает версию, чтобы отличать конвертированные пакеты от родных).
Дополнительные флаги Alien:
| Флаг | Назначение |
|---|---|
-d | Создать DEB-пакет (по умолчанию) |
-r | Создать RPM-пакет (обратная конвертация) |
-t | Создать пакет для Slackware (.tgz) |
-c | Включить скрипты из оригинального RPM (осторожно!) |
-k | Не увеличивать версию (сохранить оригинальную) |
Шаг 4: Установите полученный DEB-пакет
sudo apt install ./ваш-пакет_версия-2_amd64.deb
Что делает: Устанавливает сконвертированный пакет. Префикс ./ обязателен — без него APT будет искать пакет в репозиториях, а не в текущей папке.
Шаг 5: Проверьте установку
dpkg -l | grep имя-пакета
Что делает: Проверяет, установлен ли пакет (статус ii = installed ok).
Пример полного цикла конвертации
cd ~/Downloads
wget https://example.com/package-1.0.0-1.x86_64.rpm
sudo alien -d package-1.0.0-1.x86_64.rpm
sudo apt install ./package-1.0.0-2_amd64.deb
dpkg -l | grep package
Решение типичных проблем
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 имя-библиотеки
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 |
| Проблемы со скриптами | Скрипты из RPM могут не работать на Debian | Использовать -c осторожно или отказаться от него |
| Архитектурные проблемы | Жёстко закодированные пути | Проверять через dpkg -L |
Удаление Alien и конвертированных пакетов
Удаление сконвертированного пакета
sudo apt remove имя-пакета
Чтобы удалить вместе с конфигурационными файлами:
sudo apt purge имя-пакета
Удаление самого Alien
sudo apt remove alien
sudo apt autoremove
Проверка удаления Alien
alien --version
✅ Ожидаемый вывод: bash: alien: command not found
Чек-лист: что проверить после установки
- [ ] Alien установлен:
alien --versionпоказывает версию - [ ] RPM-файл не повреждён:
file package.rpmпоказываетRPM - [ ] Конвертация прошла успешно: создался
.deb-файл - [ ] DEB-пакет установлен:
dpkg -l | grep package-nameпоказываетii - [ ] Программа запускается: тестовый запуск не выдаёт ошибок
- [ ] Библиотеки не отсутствуют:
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. Используйте только если точно знаете, что делаете.
Вопрос: Как обновлять программу, установленную через Alien?
Ответ: Только вручную: скачать новый RPM, сконвертировать и установить поверх.
Вопрос: Есть ли альтернативы Alien для запуска RPM-программ?
Ответ: Да: dnf из Toolbox или Distrobox (запуск контейнера с Fedora), но это более сложные методы. Проще найти Flatpak/Snap/DEB-версию.
Заключение
Теперь вы умеете устанавливать RPM-пакеты на Debian через Alien. Помните:
- Native DEB + репозитории Debian — лучший вариант
- Flatpak / Snap — хорошая альтернатива
- Alien — крайний случай, когда ничего другого нет
Что дальше?
- Изучите установку Flatpak на Debian как альтернативу сторонним пакетам
- Узнайте о Snap-пакетах на Debian
- Настройте автоматические обновления для родных пакетов