☆ Linux Mint ☆

вторник, 17 июня 2008 г.

Конвертирование rpm-пакетов в deb

Собрать и установить программу из исходников, разумеется, можно и в Ubuntu, как и в любом дистрибутиве. Сделать это хотя бы однажды — полезно для общего развития. Но на волне расцвета стандартизации и повышенного внимания к удобству пользования системой, обычным решением является установка программного обеспечения из специально собранных инсталляционных бинарных пакетов. Ubuntu как наследник Debian позаимствовала у родителя и системы управления пакетами (apt — advanced packaging tool) и формат пакетов (.deb).

Наиболее, насколько мне известно, популярный формат инсталляционных пакетов на сегодня — RPM (Red Hat Package Manager). Кроме создателя используют его сегодня почти все популярные дистрибутивы: Fedora Core, SUSE, Mandriva и отечественные ASP и ALT LInux. В следствии такой популярности логично предположить, что большинство пакетов разработчиков уж как минимум о создании rpm-пакета своего приложения заботят. И то верно: сам встречался с ситуацией, когда rpm есть, а deb-пакет — отсутствует.

К счастью, есть средства для конвертирования пакетов из одного формата в другой (и даже обратно). Встречайте пакет для борьбы с «чужими» пакетами: alien.

Устанавливаем:

sudo aptitude install alien


Ну, и всё: дальше можно пользоваться. Запуск команды с единственным параметром в виде имени rpm-пакета создаст в текущей директории его deb-клон. Примерно так:
alien package-1.4-1.rpm


После этого проверьте, что появилось в директории (командой ls например). Появиться там должен пакет package-1.4-2.deb. Что за дела, почему пакет изменил версию? Не беспокойтесь, это проделки alien — номер версии увеличивается утилитой дабы отразить новосозданность пакета.

Установить пакет можно будет сразу же командой:
dpkg -i package-1.4-2.deb


Не сложно отучить alien увеличивать версию, для этого имеется ключ -k (--keep-version). Команда alien -k package-1.4-1.rpm создаст, как и полагается, пакет package-1.4-1.deb.

Чтобы пакет был не только создан, но и сразу установлен в систему, есть также удобный ключик -i (--install), сразу запускающий установку (при этом вам не обязательно заботится об итерации версии):
alien -i package-1.4-1.rpm


Если вдруг понадобиться из deb-пакета сделать rpm, то и тут поможет alien с ключом
-r:
alien -r package-1.4-1.deb


Как вы понимаете, alien удобная вещь, но не панацея. Пакеты имеющие множество параметров,привязанных к конкретному дистрибутиву (например, пути инсталляции и пр.) рискуют, будучи сконвертироанными, корректно не установиться или не заработать в вашей Ubuntu (да чего там в Ubuntu, даже rpm-пакет созданный для одного дистрибутива не всегда работает на другом — хотя это ситуация нечастая), так что когда имеется родной deb-пакет из репозитория — лучше использовать его.
aboutubuntu.ru






1 Коментарии::

~$ sudo aptitude install alien
[sudo] password for naphis:
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Инициализация состояний пакетов... Готово
Запись информации расширенных состояний... Готово
Не удалось найти пакеты, содержащих «alien» в своём имени или описании
Не удалось найти пакеты, содержащих «alien» в своём имени или описании
Ни одного пакета не будет установлено, обновлено или удалено. И как это понять??

Отправить комментарий

Написать комментарий

Подписаться

Twitter Delicious Facebook Digg Stumbleupon Favorites More