LVEE 2008 09

Материал из Linux Vacation/Eastern Europe (LVEE).

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


Stefan Schumacher в переводе Алексея Чеусовова - ‬Минск,‭ ‬Беларусь


что такое 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‭

Личные инструменты