Как конвертировать пакеты в Ubuntu, используя Alien
сообщество редакторов, исследователей и специалистов
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали авторы-волонтеры.
Количество просмотров этой статьи: 7582.
Вы можете установить в Ubuntu пакеты, предназначенные для других linux-систем, используя программу Alien. Эта программа конвертирует пакеты rpm, dpkg или TGZ. Используя Alien, вы можете преобразовать пакет в удобный вам формат и установить его.
/Desktop (нажмите Enter).
- Эта команда изменит рабочую папку на папку рабочего стола, где находится .rpm файл.
Alien – использование любых программных пакетов на выбор.
Иногда, программы или приложения, которые вы хотите установить, невозможно найти в необходимой версии.
Alien – это программа, которая может преобразовать один тип файла в другой.
Она может выручить вас из затруднительного положения, когда вы не можете найти нужный дистрибутив, и это также необходимо для программ, которые вы реально хотели бы сохранить для дальнейшей установки программ, без которых они не работают.
Она может работать вместе с Debian, Slackware и RPM в качестве входных и конечно же выходных данных.
Удивительно, как много вещей, вы, как правило, встречаете в работе в едином формате. Драйверы принтера являются примером программного обеспечения, которое часто выкладывают без исходного кода. Иногда разработчики специального программного обеспечения только создают программы для собственной системы и не готовы подстроить их для других систем.
Если вы хотите получить полноценный исходный код, и компилируете его, вы могли бы для этого лучше установить его с помощью диспетчера пакетов, используя Checkinstall (см. краткое руководство), чем Alien.
Во-первых, предупреждаем, Alien не гарантирует сопряжение со всем, что вы открываете. Alien почти последняя надежда, а не предпочтительная в процедуре установки. Иногда существует значительная разница между различными форматами пакетов и организацией распределения исходных и целевых задач.
Это означает, что он не будет работать должным образом. Когда вы используете Alien, вы, как правило, отправляетесь в неизведанные воды, а сайт Alien советует не использовать Alien для установки компонентов на системном уровне.
Alien является хранилищем пакетов большинства дистрибутивов и проста в установке и использовании. Формат команды:
Обратите внимание, что Alien нуждается в корневой привилегии для запуска. Наиболее важные параметры, для большинства пользователей, это -r, -d и -t for.rpm (Red Hat), .deb (Debian) и .tgz (Slackware) выходные форматы, соответственно.
Alien может сделать формат пакета входа своим собственным. Таким образом, чтобы взять .deb файл из wxCam и конвертировать его, используя RPM:
Затем можно применить стандартный установочный пакет и надеяться на лучшее.
Среда Linux
Коллекция материалов по работе с системой Linux С наступающим Новым годом!
Страницы
понедельник, 18 августа 2014 г.
alien: Установка «чужих» пакетов в систему
Пакет alien предназначен для конвертации пакетов между Red Hat rpm, Debian deb, Stampede slp, Slackware tgz , и Solaris pkg форматами
В большинстве случаев используется, либо, когда нужный пакет найден только в одном виде, либо когда лень компилировать из исходников, а на руках есть пакет «чужого» дистрибутива.
Сразу хочу оговориться, что не следует конвертировать важные системные пакеты «чужих» дистрибутивов для последующей установки на свой, но alien вполне сносно использовать для конвертации различного пользовательского по.
Для начала установим пакет
sudo aptitude install alien
Теперь можно приступать к конвертации, сколько раз я его не использовал всегда конвертировал либо .rpm либо тарболы (.tar, .tar.gz) в .deb
Сделать это не сложно:
К примеру есть пакет thunder.tar.gz , из него требуется получить thunder.deb , чтобы «одним кликом» поставить в систему
/thunder.tar.gz —d — если всё пройдет хорошо, то в домашней директории создастся файл thunder.deb (при конвертации из так называемых тарболов, т.е * .tar.gz рекомендуется запускать alien из под sudo , чтобы конкретно настроились права на файлы)
-d -это ключ, указывающий что надо собрать именно debian (.deb) пакет
Наиболее часто используемые опции (ключи) команды
-d, -to-deb
Создаёт debian пакет (опция по умолчанию)
-r, -to-rpm
Создаёт rpm пакет
-t, -to-tgz
Создаёт tgz пакет
-to-slp
Создаёт slp пакет
-p, -to-pkg
Создаёт Solaris pkg пакет
-i, -install
Автоматически устанавливает генерируемый пакет (без сохранения генерируемого пакета)
Выполняет попытку конвертировать скрипты, которые должны загрузиться, когда пакет устанавливается или удаляется, используйте осторожно, потому что скрипты могут быть написаны под другую систему и их выполнение на вашей может понести различные проблемы, при конвертировании из lsb пакетов опция включена по умолчанию
Чтобы узнать больше, наберите в консоли man alien , здесь я изложил лишь основной функционал команды (используя памятку по alien и личный опыт)
Утилита alien: конвертация пакетов в deb-формат
Задавшись целью создать репозиторий Cintu для номинации её как полноценного дистрибутива, я для начала решил сделать прототип оного. И, разумеется, поместить в него пакеты из числа тех, что не окучены ни в официальном репозитории Ubuntu, ни в PPA.
Все кандидаты на включение в прото-репозиторий (шрифты, русский спеллинг с поддержкой Ё, простенький редактор micro) были очень просты, и возиться со всамделишней сборкой посредством apt-build или чего-то подобного показалось мне нецелесообразным. К тому же все они (кроме micro ) имелись в бинарном виде в «домашних» репозиториях openSUSE или в Arch User Repository. И потому я воспользовался утилитой alien .
Утилита эта была написана в незапамятные времена и специально предназначена для конвертации бинарных пакетов, собранных для разных дистрибутивов, из одного формата в другой. Поддерживаемые форматы — deb , rpm , tgz из Slackware (и абстрактный tar.gz — тоже), slp из Stampede (был некогда такой дистрибутив Linux’а, в своё время — самый фронтирный) и pkg из Solaris.
Утилита alien входит в последнюю сборку Cintu — cintu-maxi-16041-7ts . В сборке cintu-midi-16041-3ts (как и во всех остальных Ubuntu’идах) её легко установить из официального репозитория:
Целевым форматом по умолчанию в alien выступает deb, прочие задаются соответствующими опциями, на которых я останавливаться не буду (заинтересованным предлагаю обратиться к тёте Мане — man alien ). Конвертация в deb-пакет из любого другого формата требует прав администратора (на причинах этого здесь останавливаться не буду). Однако пользоваться на предмет их обретения командой sudo здесь не желательно (хотя и не запрещается): после этого сгенерённый файл *.deb будет принадлежать root ‘у, со всеми вытекающими из этого неудобствами.
Так что проще воспользоваться утилитой fakeroot , которая имеется и в midi-, и в maxi-редакции Cintu. А в произвольной системе Ubuntu based её можно установить из официального репозитория:
Утилита fakeroot после запуска (кстати, не требующего ввода пароля) создаёт «псевдоадминистративное окружение». Как и sudo , её можно использовать двояко. Во-первых, дать команду
после которой последует две жалобы на «несекьюрность» текущего каталога (в обоих случаях надо отвечать согласием, то есть y ), после чего в приглашении командной строки вместо пользователя можно увидеть «администратора». То есть в Cintu по умолчанию это будет выглядеть так:
Однако реальным пользователем всё равно остаётся тот, кто запустил fakeroot , в чём легко убедиться такой командой:
Теперь можно дать команду конвертации, например, такую:
Которая завершится сообщением:
При необходимости команду можно повторить для следующего файла, или задать сразу несколько аргументов. А по окончании всей процедуры конвертации — вернуться в нормальную пользовательскую среду командой exit . И убедиться, что владельцем конвертированного файла будет не root , как в случае применения sudo , а пользователь:
Если требуется конвертировать единичный пакет — можно поступить проще:
С тем же самым результатом:
Внимательный читатель обратил внимание, что в списке поддерживаемых утилитой alien форматов нет tar.xz ( txz ), а утилита xz нынче часто используется для компрессии тарбаллов. И действительно, напрямую конвертировать файл с таким суффиксом не удастся:
Однако тут помогает нехитрая уловка — банальное переименование tar.xz в tar.gz , поскольку alien сам непосредственно распаковкой и упаковкой архивов не занимается.
И действительно, если выполнить такую операцию:
А уже затем дать команду конвертации, всё пройдёт без сяких яких:
Команду alien можно применять не только к пакетам какого-либо дистрибутива, но и к абстрактным тарбаллам — выше это было проделано для редактора micro , откомпилированный бинарник которого скачан с официального сайта проекта.
Более того, alien работает даже с самосборными тарбаллами. Например, шрифта Monofur в виде пакета не найти, наверное, ни в одном дистрибутиве. Он доступен в виде zip-архива в одной из шрифтовых коллекций. Его можно распаковать, входящие файлы распихать по нужным подкаталогам (собственно шрифты monof55.ttf и monof56.ttf — в usr/share/fonts/truetype , текст лицензии monof_tt.txt в usr/share/licenses ), а из родительского каталога сделать архив monofur-otf_1-1_all.tar.gz и подсунуть его в качестве аргумента команды alien . С генерацией deb-пакета на выходе. Да, это не эстетично идеологично, зато «дёшево, надёжно и практично».
И в заключение — очень важное замечание: применять утилиту alien целесообразно только к простым пакетам, без многочисленных зависимостей и сложных установочных сценариев — именно таковы были все рассмотренные выше случаи. В противном случае не гарантируется не то что превосходный, но даже просто приемлемый результат.
2 комментария к “ Утилита alien: конвертация пакетов в deb-формат ”
Спасибо, Алексей, очень интересный материал, в особенности по конвертации из tar.gz и переименованию для этого tar.xz.
Только вопрос, в результате конвертации все файлы будут иметь в конце all.deb? По приведённому в качестве примера редактора micro на сайте предлагаются архивы для Linux:
micro-3afb3d0-linux32.tar.gz и micro-3afb3d0-linux64.tar.gz.
На выходе оба будут иметь расширение all.deb. Или их нужно переименовывать, чтобы учесть архитектуру?
Да, Таня, alien конструирует имя из исходного пакета по своим правилам, поэтому я переименовывал для единообразия — с префиксом fonts для шрифтовых файлов, с указанием архитектуры — как для скомпилированных бинарников. Более-менее стараясь придерживаться стандартной номенклатуры Ubuntu.
Оставьте комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.