====== Управление дополнительным ПО в 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