Что такое пакет

Пакеты — это своего рода программные кванты, на которые делится система или дистрибутив. Это могут быть и простые монофункциональные утилиты (например, строчный текстовый редактор ed или архиватор tar), более или менее обширные наборы функционально связанных программ (скажем, coreutils) или составные части огромных программных комплексов (примером чему — пакеты, составляющие систему Xorg или или интегрированную среду KDE).

Термин пакет (английское package) постоянно употребляется в двух смыслах: как набор исходных текстов и как комплект скомпилированных из него исполняемых программ и всех их служебных файлов. В соответствии с этим следует различать пакеты авторские (пакеты исходников, или просто исходники, в просторечии именуемые сырцами — от английского Source), и пакеты дистрибутивные (они же прекомпилированные, бинарные или просто бинарники), собираемые разработчиками систем или майнтайнерами дистрибутивов.

Авторские пакеты принято распространять в виде компрессированных архивов — файлов вида *.tar.gz (*.tgz) или *.tar.bz2 (*.tbz2, *.tbz), так называемых тарбаллов. Это архивы исходных текстов, собранные в один файл утилитой tar и компрессированные с помощью программ сжатия gzip или bzip2, соответственно. В последнее время всё большее распространение получает сжатие архивов по алгоритму LZMA — они обычно имеют суффикс *.tar.lzma.

Как правило, для авторских пакетов действует правило: один тарбалл — один пакет. Очень большие пакеты могут быть поделены на несколько тарбаллов, но делается это исключительно для удобства скачивания и установки: все равно такой набор тарбаллов исходников сохраняет свою целостность.

Для дистрибутивных пакетов существует несколько видов распространения или, как принято говорить, форматов пакетов. Одни из них (rpm или deb) получили широкое признание за пределами материнских систем, другие используются только в “родных” дистрибутивах, третьи же достаточно объединяются в группы достаточно условно.

Самый простой из таких форматов — те же тарбаллы, включающие в себя, однако, не исходные тексты, а уже скомпилированные исполняемые файлы, обеспечивающие их работу библиотеки, конфигурационные файлы, сопутствующую документацию, и так далее. Установка такого тарбалла сводится к его развертыванию и инкорпорации в дерево файловой иерархии целевой системы. Кроме того, бинарный тарбалл может включать (и, как правило, включает) сценарии, выполняемые до и после установки пакета.

Два других широко распространённых формата пакетов — rpm (RPM Packages Manager, характерный для одноимённого дистрибутива и его многочисленных потомков) и deb (свойственный дистрибутиву Debian и его ещё более многочисленным клонам). И тот, и другой, в конечном счёте, также представляют собой компрессированные архивы бинарных файлов с указанием путей, которые они должны занять в файловой иерархии. Однако помимо этого, они содержат дополнительную метаинформацию, в том числе и о зависимостях, хотя и представленную в разной форме.

Однозначной корреляции между авторскими и дистрибутивными пакетами нет. В одних случаях бинарный пакет дистрибутива представляет собой просто откомпилированный пакет авторский, записанный в соответствующем данному дистрибутиву формате. В других же — авторский пакет делится на ряд монофункциональных бинарных пакетов. Возможно и объединение дистрибутивных пакетов, функционально связанных между собой, в единый комплекс, именуемый метапакетом. Который, впрочем, представляет собой просто определённым образом организованный список входящих в его состав обычных дистрибутивных пакетов.

Пакеты дистрибутива Fedora собираются в rpm-формате. И именно о нём и пойдёт речь далее в этой книге.


Главная
Содержание

. .