Наши партнеры





  • Leica
  • лазерных дальномеров Leica по выгодным ценам. Доставка
  • leicarussia.ru



Книги по Linux (с отзывами читателей)

Библиотека сайта 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

Назад Оглавление Вперед