Система управления пакетами во FreeBSD уже довольно старая, и, по сравнению с современными системами управления в мире Linux вроде apt-get или yum, честно говоря, выглядит убого. Поэтому было решено обновить менеджер пакетов. Новые менеджер пакетов назвали по-простому PKG Next Generation или pkgng. Старая система будет поддерживаться до сентября 2014 года. При сборке и обновлении портов сейчас выдается сообщение:
/!\ WARNING /!\
pkg_install EOL is scheduled for 2014-09-01. Please consider migrating to pkgng
http://blogs.freebsdish.org/portmgr/2014/02/03/time-to-bid-farewell-to-the-old-pkg_-tools/
If you do not want to see this message again set NO_WARNING_PKG_INSTALL_EOL=yes in your make.conf
В конце концов переходить все равно придется, поэтому не будем затягивать. Установим собственно pkgng. Можно установить из портов, можно запустить команду pkg:
$ sudo pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg please wait
Installing pkg-1.2.7_2... done
Кроме этого будет выдана краткая подсказка по использованию команды pkg. Если решите устанавливать из портов то:
$ cd /usr/ports/ports-mgmt/pkg
$ sudo make install clean
Для перехода на pkgng необходимо сконвертировать базу данных по установленным пакетам в новый формат.
$ sudo pkg2ng
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
Как видим, нам предлагаетcя настроить pkg.conf. Сначала удалим файл настроек pkg.conf и настроим репозиторий.
$ sudo rm /usr/local/etc/pkg.conf
$ echo "WITH_PKGNG=yes" |sudo tee -a /etc/make.conf
$ sudo mkdir -p /usr/local/etc/pkg/repos
$ sudo touch /usr/local/etc/pkg/repos/FreeBSD.conf
наполняем файл /usr/local/etc/pkg/repos/FreeBSD.conf следующим содержимым:
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
mirror_type: "srv",
enabled: yes
}
Теперь можно воспользоваться новым pkg:
$ sudo pkg update
Updating repository catalogue
digests.txz 100% 1091KB 1.1MB/s 450.9KB/s 00:01
packagesite.txz 100% 5042KB 840.4KB/s 1.2MB/s 00:06
Incremental update completed, 23341 packages processed:
0 packages updated, 0 removed and 23341 added.
Обновить все пакеты можно так:
$ sudo pkg upgrade
Становиться ненужным пакет portaudit - его заменяет команда pkg audit. Кому-то возможно не понадобиться более portmaster/portupgrade, хотя pkg не является полноценной заменой этим портам. Вот еще некоторые полезные возможности нового pkg. Найти порт:
$ pkg search portmaster
portmaster-3.17.4
Установить (ранее команда pkg_add):
$ sudo pkg install portmaster-3.17.4
Удалить пакет (ранее команда pkg_delete):
$ sudo pkg delete portmaster
Посмотреть зависимости (ранее команда pkg_info):
pkg info -d rtorrent
rtorrent-0.9.2_3:
libwww-5.4.0_4
ca_root_nss-3.15.4
xmlrpc-c-devel-1.36.0
libtorrent-0.13.2_1
curl-7.35.0
libsigc++-2.3.1
Просмотреть список установленных пакетом файлов (ранее команда pkg_info):
$ pkg info -l rtorrent
rtorrent-0.9.2_3:
/usr/local/bin/rtorrent
/usr/local/share/doc/rtorrent/README
/usr/local/share/examples/rtorrent/rtorrent.rc
Узнать какому пакету принадлежит файл (ранее команда pkg_info):
$ pkg which /usr/local/lib/libonig.a
/usr/local/lib/libonig.a was installed by package oniguruma-4.7.1
Получить список пакетов, нуждающихся в обновлении (ранее команда pkg_version):
$ pkg version -v -l "<"
apache22-2.2.26 < needs updating (port has 2.2.27_2)
Коментувати