Что такое пакет
Пакеты — это своего рода программные кванты, на которые делится система или дистрибутив. Это могут быть и простые монофункциональные утилиты (например, строчный текстовый редактор 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-формате. И именно о нём и пойдёт речь далее в этой книге.
Главная
Содержание . .