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