man pkg_chk
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
BUGS
При использовании с бинарными пакетами, pkg_chk не может работать
с директорией, содержащей несколько версий одного пакета.
Netbsd 4.0_BETA October 31, 2006
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 4315 просмотра