Менеджмент пакетов

:!: Примечание: необходимо вставить в статью соответствующие изображения

Только для Puppy начиная с версии 2.14!

Краткая справка

Термин «пакет» широко используется в Linux для именования приложений и их файлов поддержки. Если вы используете ОС Windows, вы знаете, что можете скачать приложение, дважды кликнуть на нём левой кнопкой мыши и оно установится, или ваш веб-браузер может установить его сразу из интернета. Здесь тоже самое. «Пакеты» отличаются от фактически исполняемых файлов названием и тем, что в Puppy пакеты имеют имена, оканчивающиеся на '.pet' (или '.pup') для того чтобы нагляднее показать, что это пакеты.

Puppy начал жизнь в качестве набора программ на live-CD, и в нём не было опции добавления пакетов. Основной причиной этого было то, что все файлы каталога /usr сохранялись в один файл с именем usr_cram.fs, он представлял собой изнутри файловую систему squashfs, которая в свою очередь является сжатой версией файловой системы, допускающей только чтение файлов. Таким образом отсутствовал способ записи в /usr. Кроме того, /bin, /sbin, /etc, /var и всё остальное находилось в ram — по сути, они были на live-CD в файле image.gz, который загружался в ram при старте — то есть, всё записанное в вышеперечисленные директории, терялось после окончания сеанса.

Исключением являлся тот случай, если Puppy была установлена на жесткий диск, причем в полном варианте, в котором Puppy занимает весь раздел жесткого диска — в отличии от того, что мы называем «frugal» (легкая установка, самый минимум) или «coexist» (одновременное использование нескольких систем) установкой — в этом случае все директории позволяют сохранять изменения, как и в любой нормальной установке Linux.

В случае Puppy, который запускается в ram, единственным местом, куда можно было сохранить файлы надолго был /root, домашняя директория пользователя, и мы предложили маленький набор пакетов которые могли бы быть закачены и установлены в /root.

Впрочем, с выходом версии 1.0.1, /usr стал поддерживать запись, благодаря использованию техники под названием unionfs. Вдруг ворота открылись, и вместе с двумя пакетными менеджерами, PupGet и DotPup, на нас обрушился поток новых пакетов. Многие из пакетов DotPup устанавливались в /root, но это было несущественно — сейчас также пакеты можно устанавливать в /usr.

Затем, в Puppy версии 2.00 мы сделали запись доступной для всего, что начинается на »/». То есть, всё, первым символом чего был »/» сохранялось и, как следствие, мы ничего не теряли при перезагрузке или выключении системы.

Поскольку мы имели два разных пакетных менеджера, имела место некоторая путаница. В действительности, существует четкое различие между ними: PupGet имеет статус 'официально', то есть он использовался в процессе создания live-CD, в то время как DotPups именуется 'не официальным', то есть он используется энтузиастами для создания пакетов для Puppy.

В Puppy версии 2.14 был сделан важный шаг на пути к объединению двух пакетных менеджеров в один, в последствии названный 'PET' формат. Абривеатура 'PET' появилась из слов «Puppy's Extra Treats» или «Puppy's Enhanced Tarballs» (то есть расширение исходников Puppy). PET вобрал в себя все преимущества своих прародителей и не перенял их недостатков.

Puppy Unleashed

Дистрибутив Puppy в формате live-CD создан более чем из 500 пакетов и сборочных скриптов, в совокупности называемые Puppy Unleashed. Сборочный скрипт, который на самом деле называется «createpuppy» (создай Puppy), позволит выбрать те пакеты, которые войдут в комплектацию live-CD, а затем создаст ISO-образ диска, остается лишь записать его на CD.

Официальное название Puppy live-CD это «puppy-2.14-seamonkey.iso», который в настоящее время базируется на возможностях Mozilla Seamonkey. Но так же есть пакет Opera, и более того John Murga собрал другой 50-мегабайтный ISO-образ на основе Opera. Каждый из вас может собрать свою собственную, уникальную версию Puppy Live-CD, и многие энтузиасты уже создали свои версии Puppy.

В Unleashed версию включены 'официальные' PET пакеты. Но как насчет всех остальных пакетов, пакетов 'сторонних' производителей, их насчитывается около 500, тех которые не попали в стартовую комплектацию Live-CD? Они размещены в различных уголках интернета и тут приходит на помощь PETget утилита менеджера пакетов, которая позволит Unleashed версии добавлять эти 'оставшиеся' пакеты.

PETget находится в во вкладке Setup меню Puppy или значок 'Install' (установка) на рабочем столе). Всего лишь запустите PETget и перед вами предстанет список доступных пакетов. Ну вот, теперь намного лучше — представленный вам лист с более чем 500 «остальными» (имеется в виду 'сторонних производителей', то есть не вошедших в комплектацию Live-CD) пакетами. Таким образом, хотя они никогда не были в поставке live-CD, вы можете устанавливать их, ну и конечно же удалять.

Если вы хотите узнать больше о Unleashed, посмотрите основной архив Puppy Unleashed, вы найдете там очень полезный файл 'README' – в файловых обменниках интернета архив должен иметь имя вроде этого: puppy-unleashed-core-2.14.tar.gz.

DotPup пакеты

DotPup — это простая система установки пакетов разработанная GuestToo и подробно описанная здесь.

Оригинальный DotPup разрабатывался GuestToo как простая система пакетов, используя которую вы просто скачивали нужный вам '.pup' пакет, а затем устанавливали его в один щелчок мыши. Позже MU разработал утилиту для создания DotPup, которая так же регистрирует DotPup с PETget менеджером при установке, причем PETget можно использовать для её удаления.

Краткое предостережение. Многие пакеты DotPup изменяют 'Menu' (найдёте слева снизу рабочего стола) непосредственно, однако в Puppy версии 2.14 перешёл на систему меню XDG, в котором конфигурационный файл оконного менеджера вообще не изменяем. Вместо этого новый пакет нужно установить в '.desktop' файл. В простых DotPup пакетах, которые не требуют меню, эта проблема отсутствует, но их нужно переводить в PET формат, например с помощью утилиты pup2pet.

Или DotPup пакеты могли быть созданы с поддержкой XDG и не напрямую изменяют конфигурационный файл меню, таким образом они полностью совместимы с Puppy 2.14 – по всей видимости MU и остальные будут обновлять утилиты создания пакетов DotPup в соответствии с обновлениями системы.

Slackware пакеты

Puppy скомпилирован из исходников и имеет уникальные архитектуры загрузки и остановки системы, отличные от всех остальных дистрибутивов. Тоже самое можно сказать про Slackware – хотя Puppy и не базируется на Slackware. Однако, бинарные пакеты для Slackware могут быть использованные для работы в Puppy.

Slackware пакет можно перевести в PET формат с помощью 'tgz2pet' утилиты. Например так:

tgz2pet xgames-0.2-i386-1.tgz

Выполнение этой команды создаст файл 'xgames-0.2-i386-1.pet'. Запустите этот файл и PETget установит его и даже запустит скрипт установки внутри Slackware пакета.

Предупреждение. Slackware имеет отличную от Puppy архитектуру и установочный скрипт может сделать что-то нежелательное для Puppy. В Slackware используются другие разделяемые библиотеки и некоторые необходимые им зависимости могут отсутствовать в Puppy. Однако, если Puppy разработчики обнаружит что Slackware пакет работает в Puppy тогда он может перевести его в пакет PET формата для остальных пользователей.

Отметим что скрипт tgz2pet не добавляет какую-либо PET-специфику в процессе конвертирования Slackware пакетов, так что если в пакете нет '.desktop' файла, скрипт не будет создавать его и в Puppy. Дополнительные функции поддержки Slackware пакетов могут быть добавлены в будущем при необходимости.

Менеджер пакетов PETget

Менеджер пакетов PETget (ранее известный как PupGet) выбирается в меню 'Setup' (установки) в Puppy, или значок «install» (установка) на рабочем столе. Он очень прост в использовании. В левом окне пакеты доступные для установки представлены в виде списка, в правом уже установленные, вот так это выглядит:

PETget package manager

После перемещения необходимого пакета кнопкой Add (добавить) и нажатия на клавишу OKAY вас попросят выбрать сайт с которого можно получить пакет или попросят указать локальный каталог с установочным файлом.

Вы могли заметить что, подводя курсор к названию пакетов, вы видите всплывающую подсказку.

И как же установить 'неофициальные' пакеты? Просто скачайте из интернета и запустите скачанный файл пакета.

Файл менеджер ROX-Filer может работать с файлами формата '.pet' и если вы щёлкните мышкой на иконке пакета запуститься PETget. Некоторые PET-пакеты, как официальные так и нет, могут быть установлены так.

Кроме того, при использовании браузера SeaMonkey вы можете кликнуть на ссылке на какой-либо».pet» файл на любой веб странице и SeaMonkey предложит скачать пакет или же сразу открыть его в PETget. Последнее предложение означает что достаточно совершить одни клик, находясь в интернете, и пакет будет установлен!

Технические детали PETget

Когда PET пакет установлен, PETget сохранит записку о установке (лог). На рисунке файл packages.txt:

PETget technical

То есть, /root/.директория содержит файлы как показано выше. Каждый установленный пакет будет, как правило, иметь один файл здесь. Например Xbubble пакету соответствует файл xbubble-0.2.4.files. Это используется PETget для удаления пакетов.

Файл packages.txt — это перечень всех установленных пакетов входящих в поставку версии Unleashed, а «livepackages.txt» это перечень пакетов формата отличного от pup_xxx.sfs (то есть не входящих в live-CD) и кандидатов на установку PETget – именно этото файл читается для представления списка доступных пакетов в PETget (правое окно).

Файл alienpackages.txt — это перечень пакетов, которые были установлены, но не входят в состав Unleashed сборки. PETget имеет свойство любые произвольные PET пакеты находящиеся на вашем компьютере и если этот пакет не входит в состав Unleashed, то он получает маркировку «alien» (чужой) или «unofficial» (неофициальный).

Самый простой способ изучить что находится в этих файлах это открыть и посмотреть, но здесь типичное вступление в livepackages.txt:

"xchat-1.8.11" "xchat-1.8.11: IRC chat client" on "GTK1APPS +gtk+ 520K" \

Первое поле – имя пакета, второе – информация которая появляется в панели PETget, третье поле содержит «on», «off» или «unavailable»: «on» означает что пакет установлен, «off» – не установлен. Последнее поле – текст всплывающей подсказки в PETget.

Файлы «.files» всего лишь список установленных файлов. Ниже приведен тест файла «xchat-1.8.11.files»:

/usr/local/bin/xchat
/usr/share/doc/xchat/xchat.html
/usr/share/doc/xchat/xchat.sgml
/usr/share/doc/xchat/xchat-1.html
/usr/share/doc/xchat/xchat-10.html
/usr/share/doc/xchat/xchat-2.html
/usr/share/doc/xchat/xchat-3.html
/usr/share/doc/xchat/xchat-4.html
/usr/share/doc/xchat/xchat-5.html
/usr/share/doc/xchat/xchat-6.html
/usr/share/doc/xchat/xchat-7.html
/usr/share/doc/xchat/xchat-8.html
/usr/share/doc/xchat/xchat-9.html
/usr/local/lib/X11/mini-icons/xchat.xpm
/usr/local/lib/X11/mini-icons/xchat_mini.xpm

Достаточно просто, обычный список файлов.

Неофициальные PET пакеты

Каждый может создать PET пакет. Существуют утилиты которые позволяют делать это максимально просто. После создания пакет может быть выложен в интернете для использования другими пользователями.

Если пользователь Puppy скачивает неофициальные PET пакеты, как же ему установить их? Или как удалить их?

Инсталляция очень просто, просто запустите '*.pet' файл.

PETget зафиксирует установку в alienpackages.txt, и список файлов в *.files.

Например, Torsmo:

"alienpackages.txt":
"torsmo-1.0" "torsmo-1.O: system monitor utility" on "XLIBAPPS 56K" \
"torsmo-1.0.files":
/usr/local/bin/torsmo
/usr/local/lib/X11/mini-icons/torsmo.xpm

Еще один момент. PET может и не иметь скрипта удаления. Например для Torsmo это был бы файл «torsmo-1.0.remove». PETget распознает этот файл как скрипт удаления и будет выполнять его для удаления файлов.

Я написал страницу, которая включает PET packages.


Barry Kauler www.puppyos.com
Перевёл Чумаков Олег
Оригинал статьи

 
articles/package-management.txt · Последние изменения: 01.03.2016 в 18:18 (внешнее изменение)
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki