Дистрибутивы на основе RPM великолепны. Они предлагают другой способ работы по сравнению с методами на основе Debian. Тем не менее, если вы его используете, вы, несомненно, будете знать о его самой большой слабости - доступности пакетов. RPM не так многочисленны, как файлы DEB. Это факт.
Некоторые пользователи боролись с этим несколькими способами: с помощью службы сборки OpenSUSE или с помощью репозиториев, таких как RPMFusion. По большей части это помогает сократить разрыв. Однако иногда это просто не помогает. Иногда вам все равно нужна посылка, а ее нигде не найти.
Конечно, вы всегда можете найти исходный код программы, которую хотите установить, и скомпилировать ее самостоятельно, но иногда этого просто не происходит, особенно для проприетарных программ. В большинстве случаев такие программы выпускаются только с двоичными пакетами, поэтому о их компиляции не может быть и речи.
Как решить эту проблему? Простой. Просто преобразуйте файлы пакета в нужный формат с помощью Alien. Это позволяет вам взять один пакет одного формата и преобразовать его в другой формат. По большей части это работает. В большинстве случаев пакеты конвертируются и могут быть установлены без проблем. В других случаях это ошибки. Попробуйте это на свой страх и риск.
Как конвертировать файлы DEB в RPM
Прежде чем мы начнем, вам понадобится Чужой. Проверьте репозиторий вашего дистрибутива. Это может быть там. Если нет, возьми здесь. Вам нужно будет найти пакет, соответствующий вашей операционной системе.
После того, как вы его загрузите, установите его, а затем откройте окно терминала.
Найдите пакет Deb, который вы хотите преобразовать, и загрузите его на свой компьютер. После того, как вы его загрузите, вернитесь к ранее открытому терминалу. Затем просто введите команду ниже.
sudo alien -r-c-v/path/to/deb/package/file/package.deb
Вы заметите, что в приведенной выше команде есть несколько переключателей. Большинство людей, используя alien для преобразования DEB в RPM, используют только переключатель -r
. Этого не достаточно. Этот переключатель только указывает программе преобразовать пакет. Если вы добавите к команде переключатели -c
и -v
, все пойдет намного более гладко (большую часть времени).
Переключатель -c
включает все сценарии, которые могут или не могут быть внутри пакета. В большинстве случаев вы захотите использовать этот переключатель. Это поможет лучше конвертировать пакеты. Иногда в пакеты не входят скрипты или они просто не работают с переключателем -c
. В этом случае просто не используйте его. Поэкспериментируйте.
Есть еще один переключатель, которым большинство людей тоже не будет пользоваться. Это -v
. Что оно делает? На нем будут отображаться все команды, выполняемые Alien во время преобразования. Это позволит вам устранить неполадки в процессе преобразования.
После запуска команды, в случае успеха, будет создан ваш новый файл RPM, после чего вы сможете взять его и установить в своей системе. Он будет расположен в том же месте, что и файл DEB. У файла RPM тоже будет такое же имя.
Заключение
Alien - очень полезная программа. Это помогает закрыть огромный пробел, который очень долго преследовал дистрибутивы на основе Redhat. Возможно, однажды придет время, когда разработчики узнают RPM в такой же степени, как и DEB. До тех пор эта программа всегда будет служить определенной цели.
3 комментария
Комментарии закрыты.
Будет ли Alien конвертировать RPM в DEB?
Да.
Поскольку формат DEB отличается и, возможно, богаче, чем RPM, чужие преобразования больших пакетов со многими зависимостями часто терпят неудачу. Хотя вы можете получить что-то, что вы можете принудительно установить в системе на основе rpm или yum, оно, вероятно, не будет работать должным образом и почти наверняка не удастся удалить или обновить должным образом. Наилучший подход для людей, которые привержены дистрибутиву, в котором есть система обработки пакетов (например, yum, zypper, dpkg, ports), - это придерживаться пакетов, которые созданы и подписаны gpg для этого дистрибутива. Все, что вы конвертируете из чужого формата, в лучшем случае будет обходить обработку пакетов системой. Так что, если вам необходимо использовать alien (да, я виновен в установке пакетов UDEB в моей системе CentOS посредством alien), убедитесь, что вы понимаете, что делаете, и сначала сделайте резервную копию или снимок вашей системы.