Как да работя в Ubuntu.
Глава 6: Управление на пакети

Съвет # 64: Конвертирайте пакети, различни от Ubuntu

Пакетите, създадени за други дистрибуции на Linux, могат да бъдат инсталирани на вашата система Ubuntu след малко преобразуване.

Различните дистрибуции на Linux използват свои собствени схеми за опаковане и въпреки че има огромен брой пакети, налични директно за Ubuntu, може да се случи да попаднете на програма, която има пакет или за Red Hat, или за друга дистрибуция, или само за източник, или просто пакет Debian, който е създаден с други инструменти.

Ако програмата е достъпна само като архив, можете сами да създадете пакета [Hack # 62] и да го инсталирате директно. Ако една програма е налична като пакет Debian, но не е компилирана специално за Ubuntu (например пакетът може да е само за експериментален Debian), можете да получите изходния код и след това да използвате стандартните инструменти за компилиране на изходен код, създаване на пакети [Hack # 63]. И ако програмата изобщо се предлага в алтернативен формат на пакета, като RPM, можете да използвате помощната програма Alien, за да конвертирате пакета в желания от вас формат.

Преобразуване на пакети с помощта на програмата Alien

Alien е помощна програма, която може да обработва редица формати на пакети, включително RPM (Red Hat Package Manager), LSB (Linux Standards Base), SLP (Stampede), Slackware, PKG (Solaris) и DEB (пакет Debian, използван от Ubuntu) и може да конвертира пакети от един формат в друг.

Започнете, като изтеглите пакета, който трябва да конвертирате. След това инсталирайте помощната програма Alien:

Сега можете да посочите пакета за конвертиране:

Флагът -c казва на Alien също да преобразува всички скриптове за инсталиране и премахване на пакети, които може да са в оригиналния пакет.

Решаваме проблеми, свързани с конвертиране на пакети

Софтуерните пакети могат да бъдат изключително сложни и да съдържат скриптове, които при инсталиране, актуализиране или премахване на пакета изпълняват добре дефинирани процедури за конфигуриране. Тези скриптове могат да се свързват с програми, които са разположени в различни дистрибуции на различни места и това е почти невъзможно да се автоматизира напълно, така че трябва да разберете, че Alien извършва преобразуването на базата на "най-добрите усилия". Ако оригиналният пакет зависи от друга програма, която вече съществува във вашата система, инсталацията може да е толкова неуспешна, че е трудно да се проследи проблемът.

Ако пакетът изглежда правилно инсталиран, но изглежда не работи, първата стъпка при отстраняване на грешки в проблема е използването на помощната програма dpkg, който търси къде са записани различните файлове на диск:

С тази команда някои очевидни проблеми могат да бъдат идентифицирани незабавно, например ако е инсталирана двоична програма на необичайно място, като например / usr/local/bin, а не в обичайното / usr/bin.

Ако това не помогне, опитайте отново да стартирате помощната програма Alien, но този път добавете флага -g, който ви казва просто да разопаковате оригиналния пакет, но не и да го конвертирате:

Това ще ви позволи да отворите отделни части на пакета, да погледнете вътре и да разберете всички скриптове, които се използват при инсталиране на програмата, както и да разгледате структурата на директориите, които се използват при инсталирането на пакета. Редактирайте инсталационния скрипт, за да отговаря на вашата среда и след това го стартирайте ръчно, което може да е достатъчно за пакета да работи.

Преобразуване на пакети на Ubuntu в други пакети

По подразбиране Alien ще преобразува всеки входен пакет в пакет във формата .деб. Това е добре за системите на Ubuntu, разбира се, но можете също да използвате помощната програма Alien, за да конвертирате .deb пакетите в други формати или да конвертирате от един формат в друг. Например, за да конвертирате пакет на Ubuntu в RPM за инсталиране на машина Red Hat, изпълнете командата: