Международная конференция разработчиков
и пользователей свободного программного обеспечения

Pkgsrc‭ ‬-‭ ‬многоплатформная система управления‭ ‬программными пакетами‭

Stefan Schumacher – Stefan@net-tex.de
Перевод – Алексей Чеусов,‭ ‬Минск,‭ ‬Беларусь,‭ ‬vle@gmx.net

LVEE 2008

что такое pkgsrc‭?

Pkgsrc‭ (‬Package Source‭) ‬это система управления пакетами,‭ ‬изначально разработанная для NetBSD.‭ ‬С тех пор она была перенесена на многие операционные системы,‭ ‬включая Linux,‭ ‬Solaris,‭ ‬AIX,‭ ‬OSF/1,‭ ‬DragonflyBSD и даже MS Windows для ее подсистемы Interix.‭ ‬Pkgsrc представляет собой хорошо организованную структуру каталогов и Makefile-ов,‭ ‬использующихся для установки программ вместе с зависимостями из исходных текстов программ или из бинарных пакетов.‭ ‬Доступно множество программ для автоматизации управления пакетами.‭

С помощью pkgsrc вы можете объединить в единое целое весь процесс управления ПО в гетерогенных сетях.‭

поддерживаемые операционные системы‭

Список поддерживаемых ОС включает‭ (‬список не полон‭)‬:‭
-‎ ‏AIX‭
-‎ ‏BSD/OS‭
-‎ ‏Darwin PowerPC‭
-‎ ‏DragonFlyBSD‭
-‎ ‏FreeBSD‭
-‎ ‏IRIX‭
-‎ ‏Interix‭
-‎ ‏HP-UX‭
-‎ ‏Linux‭
-‎ ‏NetBSD‭
-‎ ‏OSF/1‭
-‎ ‏OpenBSD‭
-‎ ‏QNX‭
-‎ ‏Solaris‭

почему вам необходим pkgsrc‭?

На современных компьютерах обычно установлены сотни различных программ.‭ ‬Все они требуют сопровождения,‭ ‬то есть обновлений,‭ ‬поверок на наличие проблем безопасности,‭ ‬компилирования из исходных текстов и т.д.‭ ‬По мере увеличения количества зависимостей между программными пакетами количество работы резко увеличивается.‭ ‬Выполнение такой работы вручную практически невозможно,‭ ‬особенно если требуется поддерживать различные операционные системы различных версий и на различных аппаратных архитектурах.‭

Для установки программ вручную,‭ ‬требуется изучить огромный набор утилит,‭ ‬необходимых для сборки,‭ ‬включая различные версии configure,‭ ‬сотни версий Make и т.п.‭ ‬Никому не хочется тратить целый рабочий день,‭ ‬чтобы понять,‭ ‬что именно требуется для сборки и установки какой-либо программы.‭

С помощью pkgsrc все эти задачи могут быть автоматизированы,‭ ‬даже в гетерогенной сети с различными ОС и различными аппаратными архитектурами.‭

отделение пакетов от операционной системы‭

Некоторые операционные системы и дистрибутивы смешивают конфигурационные файлы для пакетов и для базовой операционной системы.‭ ‬Это излишне затрудняет поддержку системы.‭

Pkgsrc полностью отделяет операционную систему от пакетов‭ ‬― все пакеты находятся в каталоге‭ ‬/usr/pkg.‭ ‬В каталоге‭ ‬/usr/pkg,‭ ‬предназначенном исключительно для пакетов,‭ ‬хранится все‭ ― ‬от страниц руководства до конфигурационных файлов.‭

предварительно скомпилированные пакеты или компиляция из исходных текстов‭?

Что бы вы ни предпочли‭ ― ‬pkgsrc будет полезен.‭ ‬Если вы хотите устанавливать исключительно бинарные пакеты,‭ ‬просто установите одну переменную окружения и pkgsrc будет использовать бинарные пакеты.‭ ‬Энтузиасты со всего мира компилируют пакеты pkgsrc для различных операционных систем и платформ,‭ ‬доступные для скачивания всем пользователям pkgsrc по адресу ftp://ftp.pkgsrc.org‭

Сборка из исходных текстов так же проста,‭ ‬как и использование бинарных пакетов.‭ ‬pkgsrc автоматически разрешит все зависимости,‭ ‬скачает все необходимые программы и установит их.‭ ‬Вы можете также создавать бинарные пакеты,‭ ‬которые затем могут быть установлены на другие машины.‭ ‬То есть,‭ ‬возможно создание бинарных пакетов для медленных машин на специальном выделенном сервере.‭ ‬Pkgsrc может даже выполнять кросс-сборку для другой архитектуры.‭

один файл управляет всем‭

Весь процесс сборки управляется одним текстовым файлом‭ ‬/etc/mk.conf‭! ‬В нем могут быть установлены все необходимые переменные.‭ ‬Эти переменные устанавливают глобальные опции сборки.‭ ‬Например,‭ ‬какой компилятор использовать,‭ ‬какие каталоги использовать во время сборки,‭ ‬куда должны устанавливаться страницы руководства и т.д.‭ ‬Кроме глобальных опций имеются также и опции для конфигурации конкретных пакетов,‭ ‬например,‭ ‬какие зависимые пакеты и каких версий использовать при сборке.

как использовать pkgsrc‭?‬

Скачайте pkgsrc с сайта pkgsrc.org с помощью CVS или ftp и распакуйте его на ваш диск.‭ ‬Pkgsrc‭ ― ‬это структура каталогов и файлов,‭ ‬разбитых на категории.‭ ‬Для установки пакета,‭ ‬войдите в каталог проекта и запустите команду make install clean clean-depends‭ ― ‬pkgsrc сделает все остальное.‭

какие существуют Make-цели‭ (‬Make-targets‭)?

-‎ ‏make fetch:‭ ‬скачать исходные тексты программы‭
-‎ ‏make checksum:‭ ‬проверить целостность исходных файлов‭
-‎ ‏make install-depends:‭ ‬установить зависимые пакеты‭
-‎ ‏make extract:‭ ‬распаковать файлы исходных текстов‭
-‎ ‏make patch:‭ ‬добавить правки к исходным текстам‭
-‎ ‏make configure:‭ ‬конфигурировать программу‭
-‎ ‏make build:‭ ‬скомпилировать программу‭
-‎ ‏make install:‭ ‬установить и зарегистрировать пакет‭
-‎ ‏make package:‭ ‬создать бинарный пакет для программы‭
-‎ ‏make clean:‭ ‬очистить рабочий каталог сборки‭
-‎ ‏make clean-depends:‭ ‬очистить рабочие каталоги сборки зависимых пакетов‭
-‎ ‏make deinstall:‭ ‬удалить пакет из системы‭
-‎ ‏make replace:‭ ‬заменить пакет на новую версию‭
-‎ ‏make update:‭ ‬обновить пакет и его зависимости‭
-‎ ‏make show-options:‭ ‬показать доступные опции сборки‭

дополнительные программы

-‎ ‏pkg_add,‭ ‬pkg_delete установка и обновление пакетов‭
-‎ ‏pkg_chk проверка,‭ ‬обновление и установка пакетов‭
-‎ ‏pkgfind поиск пакета по ключевым словам‭
-‎ ‏cdpack создание CD с бинарными пакетами‭

безопасность‭

Подобно проекту NetBSD,‭ ‬pkgsrc акцентирует свое внимание на безопасности.‭ ‬Все исходные файлы и правки для исходных текстов подписаны с помощью SHA1‭ ‬и RipeMD160.‭ ‬Обе контрольные суммы проверяются перед тем,‭ ‬как распаковать пакет.‭ ‬В случае их несоответствия установка пакета прерывается.‭ ‬Кроме контрольных сумм для проверки целостности исходный файлов могут использоваться подписи OpenPGP.‭

Для поиска небезопасных пакетов проект pkgsrc поддерживает список уязвимостей.‭ ‬Это текстовый файл,‭ ‬который содержит список небезопасных пакетов.‭ ‬С помощью программы audit_packages он может быть скачан и автоматически сопоставлен с установленными пакетами.‭ ‬Эта проверка может значительно повысить уровень безопасности ваших систем.‭

установка от имени непривилегированного пользователя‭

В pkgsrc пользователь без root-привилегий может устанавливать пакеты в свой домашний каталог.‭

источники‭

Руководство по pkgsrc доступно по адресу http://www.NetBSD.org/Documentation/pkgsrc/‭ ‬или в файле pkgsrc/doc/pkgsrc.txt‭