Библиотека сайта rus-linux.net
Приемы работы в Ubuntu.
Глава 6: Управление пакетами
Оригинал: "Ubuntu Hacks: Chapter 6 - Package Management"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.
Совет # 64: Конвертируем пакеты, не предназначенные для Ubuntu
Пакеты, созданные для других дистрибутивов Linux, можно после небольшого преобразования установить в вашей системе Ubuntu.
В различных дистрибутивах Linux используются свои собственные схемы создания пакетов и, хотя есть огромное количество пакетов, доступных непосредственно для Ubuntu, может так случиться, что вы столкнетесь с программой, для которой есть пакет либо только для Red Hat или какой-нибудь другого дистрибутива, либо только в виде исходного кода, либо только в виде пакета Debian, который был создан с помощью других инструментальных средств.
Если программа доступна только в виде архива, вы можете самостоятельно создать пакет [Совет # 62] и непосредственно его установить. Если программа доступна в виде пакета для Debian, но не была собрана специально для Ubuntu (например, пакет может быть предназначен только для экспериментальной версии Debian), вы можете получить исходный код, а затем для компиляции исходного кода можете использовать стандартные инструментальные средства, предназначенные для создания пакетов [Совет # 63]. А если программа вообще поставляется в альтернативном формате пакета, таком как RPM, вы можете воспользоваться утилитой Alien чтобы преобразовать пакет в нужный формат.
Конвертируем пакеты с помощью программы Alien
Alien является утилитой, которая может работать с рядом форматов пакетов, в том числе RPM (Red Hat Package Manager), LSB (Linux Standards Base), SLP (Stampede), Slackware, PKG (Solaris) и DEB (пакет Debian, используемый Ubuntu) и может конвертировать пакеты из одного формата в другой.
Начните с загрузки пакета, который вам нужно конвертировать. Затем установите утилиту Alien:
$ sudo apt-get install alien
Теперь вы можете указать пакет, который нужно преобразовать:
$ alien -c myprogram-1.0.1-1.i386.rpm
Флаг -c
указывает утилите Alien, что также нужно конвертировать все скрипты, предназначенные для установки и удаления пакета, которые могут быть в оригинальном пакете.
Как только утилита Alien закончит работу, у вас будет соответствующий пакет .deb; используйте инструкции, приведенные в разделе "Установка и удаление отдельных файлов .deb" [Совет # 57] для того, чтобы установить пакет и проверить, что он работает. Но, если дела идут не совсем по плану, то читайте дальше.
Решаем проблемы, связанные с конвертированием пакетов
Пакеты с программным обеспечением могут быть чрезвычайно сложными и содержать скрипты, которые, когда пакет устанавливается, обновляется или удаляется, выполняют вполне определенные настроечные процедуры. В этих скриптах могут быть ссылки на программы, которые расположены в разных дистрибутивах в различных местах, и это практически невозможно полностью автоматизировать, так что вы должны понимать, что утилита Alien выполняет преобразование по принципу применения "максимума усилий". Если первоначальный пакет зависит от другой уже существующей в вашей системе программы, установка может оказаться настолько неудачной, что трудно отследить проблему.
Если пакет, как кажется, установлен правильно, но, похоже, не работает, первым шагом в отладке проблемы является использование утилиты dpkg, которая ищет, где на диск были записаны различные файлы:
$ dpkg -L myprogram
Благодаря этой команде некоторые очевидные проблемы можно выявить сразу, например, если двоичный модуль программы был установлен в необычном месте, например, в /usr/local/bin, а не в обычном /usr/bin.
Если это не поможет, попробуйте снова запустить утилиту Alien, но на этот раз добавьте флаг -g
, который указывает просто распаковать исходный пакет, но его не преобразовывать:
$ alien -cg myprogram-1.0.1-1.i386.rpm
Это позволит открыть отдельные части пакета, заглянуть внутрь и разобраться со всеми скриптами, которые используются при установке программы, а также изучить структуру директориев, которые используются при установки пакета. Отредактируйте установочный скрипт в соответствие с вашей средой окружения, а затем запустите его вручную, что может оказаться достаточным для того, чтобы пакет заработал.
Конвертируем пакеты Ubuntu в пакеты других форматов
По умолчанию утилита Alien конвертирует любой пакет, поданный на вход, в пакет формата .deb. Это, конечно, прекрасно подходит для систем Ubuntu, но вы также можете использовать утилиту Alien для конвертирования пакетов .deb в другие форматы, или преобразовывать из одного формата в другой. Например, чтобы преобразовать пакет Ubuntu в формат RPM для установки на машину Red Hat, выполните команду:
$ alien -c --to-rpm myprogram_1.0.1_i386.deb
Назад | Оглавление | Вперед |