====== Управление дополнительным ПО в FreeBSD ======
* [[Обновление дополнительного ПО в FreeBSD]]
===== Установка ПО из портов =====
* [[http://www.freebsd.org/doc/ru/books/handbook/ports-using.html|Использование Коллекции Портов - Handbook]]
==== Установка дерева портов ====
[server:~] # portsnap fetch extract
==== Поиск приложений в дереве портов ====
[server:~] # cd /usr/ports/
[server:/usr/ports] # make fetchindex
[server:/usr/ports] # make search name=asterisk
...
[server:/usr/ports] # make search key=security
...
==== Компиляция и установка приложений из дерева портов ====
[server:~] # cd /usr/ports/net/asterisk11
[server:ports/net/asterisk11/] # make config
[server:ports/net/asterisk11/] # make showconfig | grep '=on'
NCURSES=on: Console (text) interface support
GSM=on: GSM codec support
GCC=on: Build with modern GCC (from ports)
Для ускорения процесса можно установить требуемые для компиляции и работы порта пакеты
[server:ports/net/asterisk11/] # make run-depends-list
[server:ports/net/asterisk11/] # make build-depends-list
[server:ports/net/asterisk11/] # pkg install gsm sqlite3 binutils bison gmake gcc libxml2
При наличии всех зависимостей, компиляция займет, примерно, 5 минут
[server:ports/net/asterisk11/] # make install clean
[server:ports/net/asterisk11/] # pkg lock asterisk11
==== Создание пакетов с использованием дерева портов ====
[server:~] # cd /usr/ports/games/doom/
[server:ports/games/doom] # make fetch
[server:ports/games/doom] # cat Makefile
...
@cd ${WRKSRC} && ${TAR} xzf linuxdoom-1.10.src.tgz && ${TAR} xzf sndserv.tgz
...
[server:ports/games/doom] # make extract
[server:ports/games/doom] # ln -s /usr/ports/games/doom/work/doom-1.10_5/linuxdoom-1.10 /usr/ports/games/doom/work/linuxdoom-1.10
[server:ports/games/doom] # ln -s /usr/ports/games/doom/work/doom-1.10_5/sndserv /usr/ports/games/doom/work/sndserv
[server:ports/games/doom] # make
[server:ports/games/doom] # mkdir /usr/ports/packages/
[server:ports/games/doom] # make package clean
# pkg install /usr/ports/packages/All/doom-1.10_5.txz
==== Использование единого дерева портов ====
* [[Сервис NFS]]
[gate:~] # mount server.corpX.un:/usr/ports /usr/ports
[gate:~] # setenv WRKDIRPREFIX /var/tmp/
[gate:~] # setenv DISTDIR /var/tmp
[gate:~] # setenv BATCH
===== Использование команды pkg (система pkgng) =====
==== Конвертирование базы данных установленных пакетов в pkgng ====
!!! Актуально для FreeBSD 9.X
# pkg_info
# pkg2ng
# pkg info
# cat /etc/make.conf
...
# For register new ports in pkgng
WITH_PKGNG=yes
==== Установка пакета из файла ====
% fetch http://www.communigate.com/pub/CommuniGatePro/CGatePro-FreeBSD10-Intel.txz
# pkg add CGatePro-FreeBSD10-Intel.txz
==== Получение списка установленных пакетах ====
# pkg info
==== Получение информации о пакете ====
% pkg info CGatePro
% pkg info -l CGatePro
% pkg info -D perl5
==== Обновление списка доступных пакетов из репозитория ====
$ cat /etc/pkg/FreeBSD.conf
$ man pkg-update
# pkg update -f
==== Поиск пакета в репозитории ====
# pkg search '.*' | wc -l
# pkg search clamav
==== Получение информации о пакете из репозитория ====
# pkg search -R clamav-0.99.1
==== От каких пакетов зависит пакет ====
# pkg search -d clamav-0.98.4
==== Установка пакета из репозитория ====
# pkg install clamav
==== Какие пакеты зависят от пакета ====
# pkg info -r curl
==== Список файлов, входящих в пакет ====
# pkg info -l clamav
# pkg which /usr/local/bin/clamdscan
==== Удаление пакета ====
# pkg delete clamav
==== Удаление всех пакетов ====
# pkg delete -x '.*'
==== Удаление ненужных зависимостей ====
# pkg autoremove