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

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

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

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

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

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


Теги: