FreeBSD: переход с pkg_install на pkgng

Устанавливаем утилиту pkg:

root# cd /usr/ports/ports-mgmt/pkg && make install clean

Если у вас уже или ещё не работает make – можно установить пакетом:

root# pkg_add -r pkg

В конце установки нам сообщат, что:

If you are upgrading from the old package format, first run: pkg2ng

В файл make.conf добавляем указание использовать pkgng:

root# echo 'WITH_PKGNG=YES' >> /etc/make.conf

ВАЖНО: следующий шаг необратим.

Далее – запускаем конвертацию базы портов:

root# pkg2ng
Converting packages from /var/db/pkg
Converting libtool-2.4.2_3...
Installing libtool-2.4.2_3... done
Converting libiconv-1.14_3...
Installing libiconv-1.14_3... done
Converting mc-4.8.12_1...
...
Installing libXaw-1.0.12_2,2... done
Analysing shared libraries, this will take a while... done

В целом – на этом переход можно считать завершённым.

Для примера – получение информации о пакете Dovecot 1.2:

root# pkg info dovecot-1.2.17_1
dovecot-1.2.17_1
Name:           dovecot
Version:        1.2.17_1</code></td>
Installed on:   Tue May 27 16:49:55 EEST 2014
Origin:         mail/dovecot
Architecture:   freebsd:9:x86:32
Prefix:         /usr/local
Maintainer:     unknown
WWW:            http://www.dovecot.org
Comment:        Secure and compact IMAP and POP3 servers
...
Description:
Dovecot is a secure and compact IMAP server which is in the early stages
of development. It supports Maildirs and mbox formats and much of the
IMAP v4 protocol including SSL/TLS. IPv6 support is also included.
Dovecot supports authentication with OpenLDAP, PostgreSQL, MySQL, vpopmail
and PAM.
WWW: http://www.dovecot.org

Поиск устаревших пакетов:

root# pkg version | grep <
vim-7.4.110 <

Или так:

root# pkg version -v | grep need
vim-7.4.110 < needs updating (port has 7.4.307)

Тогда как ранее это выполнялось практически такой же командой:

root# pkg_version -v | grep need

Можно запустить portupgrade, что бы проверить что используется pkgng:

root# portupgrade -n dovecot-1.2.17_1
---> Session started at: Tue, 27 May 2014 17:11:27 +0300
Reading data from pkg... - 407 packages found - done]
None has been installed or upgraded.
---> Session ended at: Tue, 27 May 2014 17:11:27 +0300 (consumed 00:00:00)

Получить полную справку по командам:

root# pkg help

Или по одной команде, например – version:

root# pkg help version

Настройки pkgng хранятся в файле /usr/local/etc/pkg.conf, данные в котором записаны в формате YAML.

При первом запуске обновления локальной копии репозитория (да-да, теперь и FreeBSD работает с репозиториями) – будет получено сообщение об ошибке:

root# pkg update -f
Updating repository catalogue
No valid repository found.

Копируем файл конфигурации:

root# cp /usr/local/etc/pkg.conf.sample /usr/local/etc/pkg.conf

Для указания главного (или – основного) репозитория – в файл достаточно добавить строку:

root# echo "PACKAGESITE: http://pkgbeta.freebsd.org/freebsd:9:x86:32/latest/" >> /usr/local/etc/pkg.conf

Хотя PACKAGESITE уже считается устаревшей опцией.

Найти URL можно зайдя на страницу http://pkgbeta.freebsd.org/ и выбрав нужную версию FreeBSD и архитектуру.

Можно создать несколько репозиториев – смотрите man pkg.conf, там в конце есть несколько примеров.

Ещё раз запускаем обновление:

root# pkg update -f
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
Updating repository catalogue
pkg: Warning: use of URL scheme with SRV records is deprecated: switch to pkg+http://
digests.txz
 100% 1094KB 364.5KB/s 773.6KB/ 00:03
pkg: Warning: use of URL scheme with SRV records is deprecated: switch to pkg+http://
packagesite.txz
 100% 5043KB 504.3KB/s&nbsp;&nbsp; 1.1MB/s 00:10
Incremental update completed, 23386 packages processed:
0 packages updated, 0 removed and 23386 added.

Ещё одна новая и весьма приятная возможность pkg – проверка установленных портов на наличие известных уязвимостей:

root# pkg audit -F
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file<
vuln.xml.bz2
 100%&nbsp; 440KB 219.8KB/s 389.7KB/s 00:02
 0 problem(s) in the installed packages found.

СТАТЬИ

МАНУАЛЫ

СХЕМЫ