понедельник, 29 января 2007 г.

Установка .rpm в Debian(Ubuntu).

Представьте себе, что нужная Вам программа доступна только в виде .rpm пакета, а вы используете Debian или Ubuntu. Как быть в таком случае? Можно поискать исходники и скачать, но для новичка это может быть затруднительно. О том, как можно решить данную проблему, не прибегая к установке или созданию .deb пакета из исходников, я и хочу сегодня написать.

Alien - это программа, которая позволяет конвертирование между Redhat rpm, Debian deb, Stampede slp, Slackware tgz и Solaris pkg форматами. В нашем случае мы воспользуемся ею для конвертирования rpm в deb.

Стоит отметить, что эта программа еще (а может и будет всегда) находится в стадии разработки. Поэтому ее нельзя использовать для замены важных системных файлов, как sysvinit, init, libc и других.

Теперь обратимся к самой программе. Во-первых, установим ее:

$ sudo apt-get install alien

Рассмотрим некоторые опции:

file [...] - задать список файлов пакета для конвертирования.
-d, ---to-deb - конвертировать в deb (эта опция установлена по умолчанию).
-r, ---to-rpm - конвертировать в rpm
-t, ---to-tgz - сделать tgz пакет
---to-slp - сделать slp пакет
-p, ---to-pkg - сделать Solaris pkg пакет
-i, ---install - автоматически установить все сгенерированные пакеты и после этого удалить сам файл пакета
-h, ---help - показать помощь
За более подробным списком опций обратитесь к man alien.

Примеры:


alien --to-deb package.rpm

Конвертирует package.rpm в package.deb

alien --to-rpm package.deb

Конвертирует package.deb в package.rpm

alien -i package.rpm

Конвертирует package.rpm в package.deb (опция --to-deb не указана, так как она стоит по умолчанию) и устанавливает сгенерированный .deb пакет

13 комментариев:

  1. Это всё, конечно, замечательно, но не думайте, что вам удастся все пакеты, скажем суслика или красной шапки запихнуть в Дебиан. Ой как не все. Для примера скачайте rpm с VMWare и попробуйте пройтись по нему alien...

    ОтветитьУдалить
  2. :) Я и не говорил что все пакеты могут быть установлены данным образом. VMWare уже стоит, но для проверки что-нибудь найду.

    ОтветитьУдалить
  3. Если стоит задача просто вытащить файлы из .rpm (мне, к примеру, надо было как то вытащить словари к StarDict), то можно сделать apt-get install rpm, а потом воспользоваться командой rpm2cpio, которая конвертирует .rpm в cpio-архив.

    cpio-архив разжимается уже стандартной командой cpio -i < filename.cpio

    ОтветитьУдалить
  4. Спасибо. Хорошая мысль. У меня тоже куча rpm пакетов от Stardict со времен SUSE завалялась.

    ОтветитьУдалить
  5. Используйте FreeBSD и не будет проблем никаких, на этом блоге все описано www.msnp.ru

    ОтветитьУдалить
  6. В вашей статье наведено много фактов над какими нужно задуматься.

    ОтветитьУдалить