Устанавливаем утилиту 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 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% 440KB 219.8KB/s 389.7KB/s 00:02
0 problem(s) in the installed packages found.