Обновление ПО во FreeBSD


Как известно, программное обеспечение во FreeBSD можно установить двумя путями. Первый: скачав необходимый пакет с одного из FTP серверов (зеркал) FreeBSD и установить с помощью команды pkg_add. Другой способ: самостоятельно скомпилировав нужную программу, скачав ее исходные коды с того же FTP сервера (зеркала). Каждый способ имеет свои достоинства и недостатки. В первом случае мы выигрываем во времени и экономим процессорное время своего компьютера, во втором случае, компилируя программное обеспечение (пакет) из портов мы получаем самую последнюю версию программы.


Однако, любое уже установленое программное обеспечение когда-нибудь понадобится обновлять (зачем обновлять ПО, думаю, пояснять не следует). И для этого в коллекции портов есть замечательный набор утилит под общим названием portupgrade.

# cd /usr/ports/
# make search name="portupgrade"

Port: portupgrade-2.3.1,2
Path: /usr/ports/ports-mgmt/portupgrade
Info: FreeBSD ports/packages administration and management tool suite
Maint: sem@FreeBSD.org B-deps: ruby-1.8.6_2,1
R-deps: db41-4.1.25_4 perl-5.8.8 ruby-1.8.6_2,1 ruby18-bdb-0.6.2
WWW: http://wiki.freebsd.org/portupgrade

Port: portupgrade-devel-2.3.1
Path: /usr/ports/ports-mgmt/portupgrade-devel
Info: FreeBSD ports/packages administration and management tool suite (devel version)
Maint: sem@FreeBSD.org B-deps: ruby-1.8.6_2,1
R-deps: db41-4.1.25_4 perl-5.8.8 ruby-1.8.6_2,1 ruby18-bdb-0.6.2
WWW: http://wiki.freebsd.org/portupgrade

Port: sysutils/portupgrade
Moved: ports-mgmt/portupgrade
Date: 2007-02-05
Reason: Moved to a new category

Port: sysutils/portupgrade-devel
Moved: ports-mgmt/portupgrade-devel
Date: 2007-02-05
Reason: Moved to a new category

Видим, что в портах есть то, что нам надо, к тому же в двух исполнениях. Первое: версия для "повседневного использования", второе: версия, которая находится в стадии разработки. Я пробовал и ту и другую. Разницы не заметил. Но ставить будем portupgrade-2.3.1,2

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

Вылезет синее диалоговое окно с вопросом о том, какой тип базы данных использовать.

Можно ничего не менять и нажимать OK. В процессе установки "portupgrade-2.3.1,2" также установит в системе пакеты "db41-4.1.25_4", "ruby-1.8.6_2,1", "ruby18-bdb-0.6.2", и, если у Вас еще не установлен Perl, то и perl-5.8.8 После установки пакета мы получаем целый арсенал для аудита и обновления программного обеспечения на Вашем роутере. Из пакета portupgrade я использую следущие программы:
portupgrade - непосредственно обновляет коллекцию портов.
portinstall - прекрасно может заменить установку портов посредством make install clean
portcvsweb - дает прямую возможность просмотреть историю изменений в портах через CVSweb
portversion - отлично заменяет стандартную FreeBSD команду pkg_version(1), которая обычно дает посмотреть какие программы в системе требуют обновлений, а также взаимодействует с portupgrade(1), давая тем самым возможность оперативно производить обновления. При этом, portversion работает гораздо быстрее, чем pkg_version(1).
portsclean - очень полезная утилитка. Позволяет автоматически и быстро очищать каталоги /usr/ports/*/*/work (workdirs), удалять неактуальные версии пакетов с исходными кодами (distfiles), неактуальные библиотеки (libs) и пакеты (packages).
portsdb - создает двоичную базу данных портов из INDEX'ного файла.
pkg_deinstall - заменяет pkg_delete(1) и добавляет новые возможности.
pkg_fetch - загружает пакеты с FTP серверов.
pkg_which - проверяет, к какому пакету относится тот или иной файл в системе.
pkgdb - управляет и проверяет базу пакетов.

А теперь рассмотрим каждую утилиту и приемы работы с ней по отдельности.


portupgrade

Полный путь к исполняемому файлу:/usr/local/sbin/portupgrade

Использование:

2.4.3 (2008/02/10)

usage: portupgrade [-habcCDDefFiklnOpPPqrRsuvwWy] [-A command] [-B command]
[-L format] [-S command] [-x pkgname_glob]
[[-o origin] [-m make_args] [-M make_env] pkgname_glob ...]

-h, --help Вывод справки
-a, --all Применить ко всем установленным пакетам
-A, --afterinstall=CMD Выполнить команду CMD после каждой установки
-b, --backup-packages Сохранять резервные копии прежних версий
--batch Запустить процесс обновления в пакетном режиме
(with BATCH=yes)
-B, --beforebuild=CMD Запустить команду CMD перед каждой сборкой
Если команда завершится неудачей, пакет пропускается
-c, --config Выполнять "make config-conditional" перед любым заданием
-C, --force-config Выполнять "make config" перед любым заданием
-D, --distclean Удалить ошибочные dist файлы и попробовать получить
их заново, если контрольная сумма неверна. Указав
этот параметр дважды заставляем выполнять "make distclean"
перед каждой попыткой получения файла или сборкой.
-e, --emit-summaries Показывать суммарную информацию после работы с каждым пакетом.
-f, --force Безусловное обновление порта. Это может пригодиться
в случае если нужно обновить пакет до низшей версии
(даунгрейд), либо выполнить реинсталляцию, либо в том
случае если порт в статусе "held".
-F, --fetch-only Только ли выполнить загрузку исходника (либо,
если указан -P загрузка пакаджа) и ничего не собирать
и не устанавливать.
--ignore-moved Игнорировать перемещенные (MOVED) файлы.
-i, --interactive Интерактивный режим. Программа будет запрашивать
согласия пользователя перед выполнением любого действия.
-k, --keep-going Продолжать обновлять порты, даже если обновление
какого-либо порта завершилось неудачей.
-l, --results-file=FILE Можно указать имя файла FILE, в который команда
выведет отчет о проделанной работе. По-умолчанию
программа ничего никуда не выводит и не сохраняет.
-L, --log-file=FORMAT В стиле printf(3) можно указать формат разделителей
в лог-файле для каждого порта.
Допустимы конструкции вида '%s::%s'
-m, --make-args=ARGS С этим ключом можно указать аргументы, применимые
после каждого выполнения команды make(1)
-M, --make-env=ARGS С этим ключом можно указать аргументы, применимые
перед каждым выполнением команды make(1)
-n, --noexecute Ничего на самом деле не обновлять, а просто показать
результат работы команды.
-N, --new Когда указанный пакет не установлен, установить его,
после обновления всех зависимых от него пакетов
(по-умолчанию отключено)
-o, --origin=ORIGIN Указание, какой порт обновлять, следуя pkg with
-O, --omit-check Пренебречь проверкой зависимостей
-p, --package После завершения установки ПО из портов, собрать пакет.
-P, --use-packages При обновлении использовать пакаджи (если это возможно)
вместо коллекции портов. Если указать дважды - это будет
равносильно флагу --use-packages-only
--use-packages-only Или -PP; При обновлении использовать только пакеты.
-q, --quiet Ничего не выводить при использовании опции -N option
и если такой пакет уже установлен
--noconfig Не читать настройки из стандартного конфигурационного
файла /usr/local/etc/pkgtools.conf
-r, --recursive Рекурсивно обновлять порт, а также те порты,
от которых он зависит
-R, --upward-recursive Рекурсивно обновлять порт, а также те порты, которые
зависят от него. Рекурсивно загружать исходные коды
при указании опции -F
-s, --sudo При необходимости запускать команду с использованием sudo(8)
-S, --sudo-command=CMD Указание альтернативной команды вместо sudo(8)
Например: 'su root -c "%s"' (по-умолчанию sudo)
-u, --uninstall-shlibs Не складировать устаревшие расшаренные библиотеки
-v, --verbose Расширенный режим вывода сообщений
-w, --noclean Не выполнять "make clean" перед каждой сборкой
-W, --nocleanup Не выполнять "make clean" после каждой сборки
--without-env-upgrade
Не устанавливать значения переменных UPGRADE_*
-x, --exclude=GLOB При обновлении пакетов, исключить из обновления пакеты,
указанные в примере GLOB
-y, --yes Указание программе самостоятельно отвечать на все свои вопросы "ДА"

Практические примеры использования этой утилиты:
portupgrade --all --noexecute - для того чтобы увидеть, какие пакеты требуют обновления.
portupgrade --all - для того, чтобы обновить все пакеты, которые требуют обновления.
portupgrade <имя пакета> - для того, чтобы обновить какой-то конкретный пакет.
portupgrade --force <имя пакета> - для того, чтобы принудительно обновить пакет, независимо от того, поменялась ли актуальная версия данного ПО или нет. Помогает, если нужно просто переустановить (пересобрать) какой-нибудь пакет.


portinstall

Полный путь к исполняемому файлу: /usr/local/sbin/portinstall

Использование:

portinstall 2.4.3 (2008/02/10)

usage: portinstall [-habcCDDefFiklnOpPPqrRsuvwWy] [-A command] [-B command]
[-L format] [-S command] [-x pkgname_glob]
[[-o origin] [-m make_args] [-M make_env] pkgname_glob ...]

-h, --help Вывод справки
-a, --all Применить ко всем установленным пакетам
-A, --afterinstall=CMD Выполнить команду CMD после каждой установки
-b, --backup-packages Сохранять резервные копии прежних версий
--batch Запустить процесс обновления в пакетном режиме
(with BATCH=yes)
-B, --beforebuild=CMD Запустить команду CMD перед каждой сборкой
Если команда завершится неудачей, пакет пропускается
-c, --config Выполнять "make config-conditional" перед любым заданием
-C, --force-config Выполнять "make config" перед любым заданием
-D, --distclean Удалить ошибочные dist файлы и попробовать получить
их заново, если контрольная сумма неверна. Указав
этот параметр дважды заставляем выполнять "make distclean"
перед каждой попыткой получения файла или сборкой.
-e, --emit-summaries Показывать суммарную информацию после работы с каждым пакетом.
-f, --force Безусловное обновление порта. Это может пригодиться
в случае если нужно обновить пакет до низшей версии
(даунгрейд), либо выполнить реинсталляцию, либо в том
случае если порт в статусе "held".
-F, --fetch-only Только ли выполнить загрузку исходника (либо,
если указан -P загрузка пакаджа) и ничего не собирать
и не устанавливать.
--ignore-moved Игнорировать перемещенные (MOVED) файлы.
-i, --interactive Интерактивный режим. Программа будет запрашивать
согласия пользователя перед выполнением любого действия.
-k, --keep-going Продолжать обновлять порты, даже если обновление
какого-либо порта завершилось неудачей.
-l, --results-file=FILE Можно указать имя файла FILE, в который команда
выведет отчет о проделанной работе. По-умолчанию
программа ничего никуда не выводит и не сохраняет.
-L, --log-file=FORMAT В стиле printf(3) можно указать формат разделителей
в лог-файле для каждого порта.
Допустимы конструкции вида '%s::%s'
-m, --make-args=ARGS С этим ключом можно указать аргументы, применимые
после каждого выполнения команды make(1)
-M, --make-env=ARGS С этим ключом можно указать аргументы, применимые
перед каждым выполнением команды make(1)
-n, --noexecute Ничего на самом деле не обновлять, а просто показать
результат работы команды.
-N, --new Когда указанный пакет не установлен, установить его,
после обновления всех зависимых от него пакетов
(по-умолчанию отключено)
-o, --origin=ORIGIN Указание, какой порт обновлять, следуя pkg with
-O, --omit-check Пренебречь проверкой зависимостей
-p, --package После завершения установки ПО из портов, собрать пакет.
-P, --use-packages При обновлении использовать пакаджи (если это возможно)
вместо коллекции портов. Если указать дважды - это будет
равносильно флагу --use-packages-only
--use-packages-only Или -PP; При обновлении использовать только пакеты.
-q, --quiet Ничего не выводить при использовании опции -N option
и если такой пакет уже установлен
--noconfig Не читать настройки из стандартного конфигурационного
файла /usr/local/etc/pkgtools.conf
-r, --recursive Рекурсивно обновлять порт, а также те порты,
от которых он зависит
-R, --upward-recursive Рекурсивно обновлять порт, а также те порты, которые
зависят от него. Рекурсивно загружать исходные коды
при указании опции -F
-s, --sudo При необходимости запускать команду с использованием sudo(8)
-S, --sudo-command=CMD Указание альтернативной команды вместо sudo(8)
Например: 'su root -c "%s"' (по-умолчанию sudo)
-u, --uninstall-shlibs Не складировать устаревшие расшаренные библиотеки
-v, --verbose Расширенный режим вывода сообщений
-w, --noclean Не выполнять "make clean" перед каждой сборкой
-W, --nocleanup Не выполнять "make clean" после каждой сборки
--without-env-upgrade
Не устанавливать значения переменных UPGRADE_*
-x, --exclude=GLOB При обновлении пакетов, исключить из обновления пакеты,
указанные в примере GLOB
-y, --yes Указание программе самостоятельно отвечать на все свои вопросы "ДА"

Практические примеры использования этой утилиты:
portinstall xorg - установить порт с именем "xorg". Версию указывать не нужно. Программа установит последнюю версию из портов.
portinstall --use-packages xorg - тоже самое что и в первом примере, но только при установке "xorg" будет запрошен готовый пакет данного ПО, и если последней версии, которая описана в портах, в виде пакета не окажется, программа начнет собирать данный пакет из исходников.
portinstall --use-packages-only xorg - тоже самое что и в первом примере, но только при установке "xorg" будет запрошен готовый пакет данного ПО, и если последней версии, которая описана в портах, в виде пакета не окажется, программа выдаст сообщение об ошибке и пакет установлен не будет.


portcvsweb

Полный путь к исполняемому файлу: /usr/local/sbin/portcvsweb

Использование:

portcvsweb 2.4.3 (2008/01/08)

usage: portcvsweb [-hqv] {pkgname_glob|portorigin_glob|file|directory}

-h, --help Вывод справки
-q, --noconfig Не читать настройки из стандартного конфигурационного
файла /usr/local/etc/pkgtools.conf
-v, --verbose Расширенный режим вывода сообщений
-F, --freshports Для получения информации просматривать ресурсы FreshPorts.org вместо CVSweb
-D, --datespec [DATE] Просматривать ресурсы FreshPorts.org не позднее указанной даты

Практические примеры использования этой утилиты:
Наберите в консоли portcvsweb -F и результат увидите сами.


portversion

Полный путь к исполняемому файлу: /usr/local/sbin/portversion

Использование

portversion 2.4.3 (2008/01/08)

usage: portversion [-hOqv] [-l limit_chars] [-L inv_limit_chars]
[pkgname_glob ...]
portversion [-v] -t ver0 ver1 [ver2 ...]

-h, --help Вывод справки
-c, --command-output Включить вывод команд
-C, --command-args=ARGS Указать аргументы для portupgrade в выводе команды
(по-умолчанию ничего)
--ignore-moved Игнорировать перемещенные (MOVED) файлы
-l, --limit=CHARS Включить только пакеты с указанным статусом
-L, --inv-limit=CHARS Исключить пакеты с указанным статусом
-O, --omit-check Пренебречь проверкой зависимостей
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf
-r, --recursive Проводить проверку пакета, а так же тех пакетов, которые от него зависят
-R, --upward-recursive Проводить проверку пакета, а так же тех пакетов, от которых он зависит
-t, --test=VERSION Сравнить версию пакета(ов) с указанной и вывести результат
-v, --verbose Расширенный режим вывода сообщений
-x, --exclude=GLOB В выводе команды, исключить пакеты, указанные в примере GLOB

Практические примеры использования этой утилиты:
portversion -v - выведет на экран список всех установленных в системе пакетов, их версии, а также актуальность версий.


portsclean

Полный путь к исполняемому файлу: /usr/local/sbin/portsclean

Использование

2.4.3 (2008/02/10)

usage: portsclean [-hCDDiLnPPQQq]

-h, --help Вывод справки
-C, --workclean Удаление /usr/ports/*/*/work каталогов
-D, --distclean Удаление дистрибутивов с исходными кодами (в /usr/ports/distfiles),
версии которых не соответствуют текущим версиям из дерева портов.
Если этот параметр указать дважды, то будут удалены все дистфайлы,
из которых не установлено ни одно приложение в системе
-i, --interactive Интерактивный режим. Программа будет запрашивать согласия пользователя
перед выполнением любого действия.
-L, --libclean Удаление устаревших общеиспользуемых библиотек
-n, --noexecute Ничего не делать, а только показать ход выполнения команды
-P, --pkgclean Удалить неактуальные версии архивов с пакаджами (в /usr/ports/packages/All).
Если указать этот параметр дважды, программа удалит все архивы с пакаджами.
-Q, --quiet Работать "молча" и ничего не выводить на stdout. Если указать параметр дважды,
то в случае появления также не будут выводиться сообщения на stderr.
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf

Практические примеры использования этой утилиты:
portsclean -vCDLP - удалит work каталоги в коллекции портов, удалит неактуальные дистфайлы, удалит неактуальные библиотеки, а также неактуальные версии пакаджей в /usr/ports/packages/All

Небольшое замечание касательно portsclean -L Дело в том, что в выводе команды можно увидеть "ругань" на повторяющиеся библиотеки в каталогах /usr/local/lib/ и /usr/X11R6/lib/. Я не знаю, почему portsclean не в курсе того, что /usr/X11R6 есть символическая ссылка на /usr/local потому просто игнорирую эти сообщения.


portsdb

Полный путь к исполняемому файлу: /usr/local/sbin/portsdb

Использование:

ortsdb 2.4.3 (2008/01/08)

usage: portsdb [-hfFMqrRuU] [-x port_glob] [port_glob ...]

-h, --help Вывод справки
-f, --force Безусловно обновлять базу, несмотря на временные метки
-F, --fetchindex Запросить с FTP сервера INDEX файл дерева пакетов
-M, --master-recursive Вывести список всех портов, из которых собираются пакеты
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf
-r, --recursive Список всех портов, которые зависят от этого пакета
-R, --upward-recursive Список всех портов, от которых зависит этот пакет
-u, --update Обновить базу INDEX.db
-U, --updateindex Обновить файл INDEX
-x, --exclude=GLOB В выводе команды, исключить пакеты, указанные в примере GLOB

Практические примеры использования этой утилиты:
portsdb -U - обновление INDEX файла коллекции портов.


pkg_deinstall

Полный путь к исполняемому файлу: /usr/local/sbin/pkg_deinstall

Использование:

pkg_deinstall 2.4.3 (2008/01/08)

usage: pkg_deinstall [-hacdDfinOPqrRv] [-e args] [-p prefix] [-x pkgname_glob]
[pkgname_glob ...]

-h, --help Вывод справки
-a, --all Удалить ВСЕ установленные пакеты
-c, --collate Проверить вероятность того, что какой-либо установленный файл в каждом
пакете был переписан другим пакетом, и если так, то не деинсталировать его.
-d, --rmdir Удалять пустые каталоги [*]
-D, --noscripts Не выполнять деинсталляционные скрипты [*]
-f, --force Форсированное удаление пакетов [*]
-i, --interactive Интерактивный режим удаления пакетов. Программа будет спрашивать
подтверждения для каждого действия [*]
-n, --noexecute Ничего не удалять - просто показать, какие шаги будут предприняты
для выполнения команды [*]
-O, --omit-check Пренебречь проверкой зависимостей
-p, --prefix=PREFIX Установить префикс PREFIX [*]
-P, --preserve Складировать разделяемые библиотеки. (Сохраняются как *.so.n)
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf
-r, --recursive Удалить также все те пакеты, которые зависят от этого пакета
-R, --upward-recursive Удалить также все те пакеты, от которых зависит удаляемый пакет
-v, --verbose Расширенный режим вывода сообщений [*]
-x, --exclude=GLOB При выполнении команды, исключить пакеты, указанные в примере GLOB

[*] Выполнение программы с этими опциями передается pkg_delete(1).

Практические примеры использования этой утилиты:
pkg_deinstall mc-4.6.1_6 - удалит пакет mc-4.6.1_6 из системы.


pkg_fetch

Полный путь к исполняемому файлу: /usr/local/sbin/pkg_fetch

Использование

pkg_fetch 2.4.3 (2008/01/08)

usage: pkg_fetch [-hfqRv] {pkgname|URI} ...

-h, --help Вывод справки
-f, --force Загружать пакет, даже если он есть в базе как установленный.
Удалить пакет, если он помечен как поврежденный
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf
-R, --upward-recursive Загрузить также те пакеты, от которых зависит загружаемый пакет
-v, --verbose Расширенный режим вывода сообщений

Практические примеры использования этой утилиты:
pkg_fetch firefox - загрузит с FTP сервера пакет firefox (последней версии) и сохранит его под именем firefox-X.X.X.X (номер версии) в каталог /usr/ports/packages/All


pkg_which

Полный путь к исполняемому файлу: /usr/local/sbin/pkg_which

Использование

pkg_which 2.4.3 (2008/01/26)

usage: pkg_which [-hafFfiLOQQquv] [-c pkgname] [-o pkgname] [-s /old_pkgname/new_pkgname/] [file ...]

-h, --help Вывод справки
-c, --collate=PKGNAME Показать файлы, установленные указанным пакетом, которые были
перезаписаны файлами из других пакетов
-f, --force Форсированное выполненние команды: с указанием
флага -u - обновлять базу, несмотря на временные метки;
с указанием флага -F - исправлять также "удержанные" пакеты ("held")
-F, --fix Исправлять базу пакетов в интерактивном режиме
-a, --auto Включить автоматический режим если указан флаг -F
--autofix Сокращенный аналог --auto
-i, --interactive Интерактивный режим. Программа будет спрашивать
подтверждения для каждого действия
-L, --fix-lost Проверить и восстановить утерянные зависимости
-o, --origin=PKGNAME[=ORIGIN] Посмотреть или изменить параметр $ORIGIN данного пакета
-O, --omit-check Пренебречь проверкой зависимостей. Полезно, если нужно ускорить
выполнение команды
-Q, --quiet Работать "молча" и ничего не выводить на stdout.
Если указать параметр дважды, то в случае появления также не будут
выводиться сообщения на stderr.
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf
-s, --substitute=/OLD/NEW/ Пометить все зависимости, помеченные как OLD на NEW
-u, --update Обновить базу пакетов
-v, --verbose Расширенный режим вывода сообщений

Практические примеры использования этой утилиты:
pkg_which mc - покажет версию пакета Midnight Commander, если он установлен в системе.


pkgdb

Полный путь к исполняемому файлу: /usr/local/sbin/pkgdb

Использование:

pkgdb 2.4.3 (2008/01/26)

usage: pkgdb [-hafFfiLOQQquv] [-c pkgname] [-o pkgname] [-s /old_pkgname/new_pkgname/] [file ...]

-h, --help Вывод справки
-c, --collate=PKGNAME Показать файлы, установленные указанным пакетом, которые были
перезаписаны файлами из других пакетов
-f, --force Форсированное выполненние команды: с указанием флага -u -
обновлять базу, несмотря на временные метки; с указанием флага
-F - исправлять также "удержанные" пакеты ("held")
-F, --fix Исправлять базу пакетов в интерактивном режиме
-a, --auto Включить автоматический режим, если указан флаг -F
--autofix Сокращение от --auto --fix (-aF)
-i, --interactive Интерактивный режим.
Программа будет спрашивать подтверждения для каждого действия
-L, --fix-lost Проверить и восстановить утерянные зависимости
-o, --origin=PKGNAME[=ORIGIN] Посмотреть или изменить параметр $ORIGIN данного пакета.
-O, --omit-check Пренебречь проверкой зависимостей. Полезно, если нужно
ускорить выполнение команды.
-Q, --quiet Работать "молча" и ничего не выводить на stdout. Если указать
параметр дважды, то в случае появления также не будут выводиться
сообщения на stderr.
-q, --noconfig Не читать настройки из стандартного конфигурационного файла
/usr/local/etc/pkgtools.conf
-s, --substitute=/OLD/NEW/ Пометить все зависимости, помеченные как OLD на NEW
-u, --update Обновить базу пакетов
-v, --verbose Расширенный режим вывода сообщений

Практические примеры использования этой утилиты:
pkgdb -F - проверить и внести исправления в базу пакетов, если это требуется

http://daemony.org

Обновлено: 12.03.2015