man pkg_chk

untitled аватар

man pkg_chk

NAME
pkg_chk -- проверить и опционально обновить установленные пакеты

SYNOPSIS
pkg_chk [-aBbcfhiklNnpqrsuv] [-C conf] [-D tags] [-L file] [-P path]
[-U tags]

DESCRIPTION
pkg-chk проверяет соответствуют ли версии установленных пакетов версиям в
pkgsrc, опционально добавляя отсутствующие и обновляя пакеты с несоответствующей
версией.

Могут быть проверены все установленные пакеты или только часть, принадлежащая к
определенному имени хоста, архитектуре или какой-либо другой группе пакетов.

При обновлении зависящих друг от друга пакетов pkg_chk пропускает зависимые пакеты
во избежании ненужных пересборок.

Options
-a Автоматически добавить все отсутствующие пакеты. Если в ${PACKAGES}
находятся бинарные пакеты, они будут _собраны_из_исходников_, если
не обьявлен флаг -b или -s.

-B Влключить "Build version" (см. флаг -b pkg_info(1)) пакетов во время
проверки пакета на обновление.

-b Использовать бинарные пакеты. Если флаг -s не обьявлен это позволяет
запускать pkg_chk без использования PKGSRCDIR.

-C conf Использовать фаил 'conf' вместо pkgchk.conf.

-D tags Добавить список тэгов разделенных запятой к тем которые определены
во время проверки pkgchk.conf. Также используется PKGCHK_TAGS.

-f Загрузить все отсутствующие/нуждающиеся в обновлении пакеты. Может
быть использовано с -a или -u флагами для закачки всех пакетов до
начала сборки.

-g Сгенерировать фаил pkgchk.conf основанный на установленных пакетах.

-h Показать помощь.

-k Продолжить со следующего пакета если произошла ошибка.

-L file Посылать выводы всех команд в логфаил file. Обязательно определять
полный путь к фаилу. При любой ошибке конец фаила будет показан.

-l Показать бинарные пакеты (включая все зависимости с которыми был
собран пакет) основываясь на pkgchk.conf. Прервется, если пакет не
найден. Может быть использовано (совместно с флагами -U и -D) для
определения пакета, который необходимо перенести на удаленную машину
чтобы убедиться в ее полном обновлении. Список сортирован так, что
зависимости всегда идут перед пакетом от которого зависят.

-N Для каждого установленного пакета проверить ${PKGSRCDIR}/doc/TODO.
на наличие новой версии. Полезно для поиска пакетов, которые надо
обновить.

-n Показать какие действия будут выполнены, но ничего не выполнять.

-P path Определить путь к бинарным пакетам.

-p Показать список проверяемых директорий и выйти.

-q Не показывать выполняемых действий; вывести только список инфомации
о разнице версий пакетов. Хорошо использовать с флагами -a или -u.

-r Рекурсивно удалить все несовпадающие с новой версией пакеты.
!Используйте осторожно, программа не записывает какие пакеты удаляет!

-s Собрать недостающие пакеты из исходников. Если UPDATE_TARGET=package
определено в /etc/mk.conf, pkg_chk автоматически сгенерирует бинарный
пакет для дальнейшего использования.

-U tags Удалить список тэгов разделенных запятой из тех которые определены
во время проверки pkgchk.conf. Также используется PKGCHK_NOTAGS.
Директории пакетов могут быть пропущены если указать их в списке
-U. Использование '*' с -U выключит все тэги используемые
по умолчанию.

-u Автоматически обновить все пакеты. Если бинарные пакеты находятся в
PACKAGES они будут собраны их исходников если флаги -b или -s
не установлены.

NOTE: если во время обновления произошла ошибка, пакет будет удален.
Когда ошибка будет исправлена повторный запуск продолжит обновление.

-v Показывать тэги установленные в pkgchk.conf и все проверяемые пакеты.

Устаревшие флаги
-c Посмотреть версии пакетов в pkgchk.conf. Это синоним pkg_chk -a -q
и будет удален в ближайших версиях.

-i Посмотреть версии установленных пакетов не проверяя pkgchk.conf.
Это синоним pkg_chk -u -q и будет удален в ближайших версиях.

ФОРМАТ ФАИЛА
Все знаки после '#' рассматриваются как комментарий.

Каждая строка в pkgchk.conf может определять либо новый тэг либо директорию
пакета (например sysutils/skill) за которой следует список тэгов.

Новые группы тэгов
Строки, определяющие новые тэги, могут быть использованы для группирования
тэгов чтобы избегать повторного определения одних и техже тэгов, например:
mailserver = tll gta tycon jeeves iris
определит тэг mailserver для всех хостов в списке.
Заметьте, что тэги идущие за '=' определяются по темже правилам что и те,
которые следуют за определением пакета (см дальше).

Строки определения пакетов
Строки директорий пакетов используются для определения устанавливаемых
пакетов и тэгов, устанавлеваемых для каждой определенной группы.

Определение тэгов
Тэги в строке директории пакета определяются для данной группы машин:

o Если перед тэгом стоит дефис '-', пакет исключается.

o В противном случае пакет включен.

o Строка без тэгов касается всех машин.

o Знак '*' определяет любой тэг.

o Если тэг начинается с '/' он читается как путь к фаилу.

o Тэги немогут содержать дефисов '-' или плюсов '+'.

o Тэги разделенные пробелом читаются как "или или". ''tagA tagB''
означает или tagA или tagB соответствует данной машине.

o Тэги разделенные плюсом читаются как "и". ''tagA+tagB" означает
tagA и tagB соответствуют данной машине.

Список тегов по умолчанию определяемый в pkgchk.conf эквивалентен выводу
команд: hostname -s, hostname, uname -srm, uname -sr, uname -sm,
uname -s, uname -r, uname -m, где все пробелы конвертируются в дефис '-'.
Если /usr/X11R6/lib/libX11.so или /usr/X11R6/lib/libX11.a прусутствует,
x11 будет добавлен в список тэгов. Тэги не должны содержать знаки
- или +. Чтобы увидеть тэги, определенные для данной машины, запустите
pkg_chk с флагом -v.

ENVIRONMENT
pkg_chk использует следующие переменные окружения.

PKGSRCDIR
Верхушка дерева pkgsrc. Если не установлено в окружении, читается
${MAKECONF} или /etc/mk.conf. По умолчанию /usr/pkgsrc.

PKG_DBDIR
Директория базы данных pkgsrc. Если не установлено в окрижении, читается
${MAKECONF} или /etc/mk.conf. По умолчанию /var/db/pkg.

PACKAGES
Место расположения бинарных пакетов. Если не установлено в окружении,
читается /etc/mk.conf. По умолчанию ${PKGSRCDIR}/packages.

В обсолютно идеентичной среде (все машины на одинаковых операционных
системах, версиях системы и одной архитектуры) рекомендуется установить
${PACKAGES} как
${PKGSRCDIR}/packages/${LOWER_OPSYS}-${OS_VERSION}-${MACHINE_ARCH}.
Если cpuflags (devel/cpuflags) используется для оптимальной настройки
определенных типов CPU, ${CPU_DIR} должна пригалаться к ${PACKAGES}.

PKGCHK_CONF
Путь к конфигурационному фаилу pkg_chk. Если не установлено в окружении,
читается /etc/mk.conf. По умолчанию ${PKGSRCDIR}/pkgchk.conf.

PKGCHK_UPDATE_CONF
Путь к временному списку установленных пакетов, используется при
обновлении. Если не установлено в окрижении, читается /etc/mk.conf.
По умолчанию ${PKGSRCDIR}/pkg_chk_update-$(hostname).conf.
Заметьте, если pkgsrc разделена между несколькими машинами, которые могут
обновляться одновременно, важно, чтоб этот фаил не покрывал всех машин.

PKGCHK_TAGS
Определение дополнительных тэгов при анализе pkgchk.conf.

PKGCHK_NOTAGS
Определение удаляемых тэгов при анализе pkgchk.conf.

EXAMPLES
Простой пример фаила pkgchk.conf:

mailserver = tll gta tycoon jeeves iris

#Install before others
devel/cpuflags
pkgtools/pkg_chk

#Mail related
mail/exim *
mail/spamassassin mailserver
mail/cyrus-imapd mailserver
mail/procmail mailserver

shells/standalone-tcsh *
wm/pwm /etc/X11/XF86Config
misc/setiathome i386
print/acroread /etc/X11/XF86Config+i386
www/communicator x11+sparc x11+sparc64
www/navigator x11+i386
x11/xlockmore x11-wopr

AUTHORS
David Brownlee , plus much from Stoned Elipot.

BUGS
При использовании с бинарными пакетами, pkg_chk не может работать
с директорией, содержащей несколько версий одного пакета.

Netbsd 4.0_BETA October 31, 2006