Работа с портами
Поиск нужного порта.
Поиск можно осуществлять как по имени, так и по описанию.
- по имени (ключевое слово name):
# cd /usr/ports # make search name=opera Port: opera-7.21.20031013 Path: /usr/ports/www/opera Info: A blazingly fast, full-featured, ↵ standards-compliant browser Maint: avleeuwen@piwebs.com Index: www B-deps: ... R-deps: ... ...
- по описанию (ключевое слово key):
# cd /usr/ports # make search key=dvd Port: dvdrip-0.48.8 Path: /usr/ports/multimedia/dvdrip Info: This is dvd::rip, a Perl Gtk+ based dvd-ripper Maint: michaelnottebrock@gmx.net Index: multimedia B-deps: ... R-deps: ... ...
Просмотр зависимостей.
# cd /usr/ports/www/opera # make pretty-print-build-depends-list This port requires package(s) "aspell-0.60.6_2 cups-client-1.3.10_2 damageproto-1.1.0_2 dri2proto-2.0 expat-2.0.1 fixesproto-4.0 fontconfig-2.6.0,1 freetype2-2.3.9_1 gettext-0.17_1 gnutls-2.6.5 inputproto-1.5.0 jpeg-6b_7 kbproto-1.0.3 lcms-1.18a,1 libGL-7.4.4 libGLU-7.4.4 libICE-1.0.4_1,1 libSM-1.1.0_1,1 libX11-1.2.1_1,1 libXau-1.0.4 libXaw-1.0.5_1,1 libXdamage-1.1.1 libXdmcp-1.0.2_1 libXext-1.0.5,1 libXfixes-4.0.3_1 libXft-2.1.13 libXi-1.2.1,1 libXinerama-1.0.3,1 libXmu-1.0.4,1 libXp-1.0.0,1 libXpm-3.5.7 libXrender-0.9.4_1 libXt-1.0.5_1 libXxf86vm-1.0.2 libdrm-2.4.11 libgcrypt-1.4.4 libgpg-error-1.7 libiconv-1.13.1 libmng-1.0.10 libpthread-stubs-0.1 libxcb-1.3 nas-1.9.1_3 pkg-config-0.23_1 png-1.2.35 printproto-1.0.4 python26-2.6.2 qt-3.3.8_9 renderproto-0.9.3 xcb-proto-1.5 xextproto-7.0.5 xf86vidmodeproto-2.2.2 xineramaproto-1.1.2 xproto-7.0.15" to build.
Просмотр списка пакетов, необходимых для запуска порта
# cd /usr/ports/www/opera # make pretty-print-run-depends-list This port requires package(s) "aspell-0.60.6_2 cups-client-1.3.10_2 damageproto-1.1.0_2 dri2proto-2.0 expat-2.0.1 fixesproto-4.0 fontconfig-2.6.0,1 freetype2-2.3.9_1 gettext-0.17_1 gnutls-2.6.5 inputproto-1.5.0 jpeg-6b_7 kbproto-1.0.3 lcms-1.18a,1 libGL-7.4.4 libGLU-7.4.4 libICE-1.0.4_1,1 libSM-1.1.0_1,1 libX11-1.2.1_1,1 libXau-1.0.4 libXaw-1.0.5_1,1 libXdamage-1.1.1 libXdmcp-1.0.2_1 libXext-1.0.5,1 libXfixes-4.0.3_1 libXft-2.1.13 libXi-1.2.1,1 libXinerama-1.0.3,1 libXmu-1.0.4,1 libXp-1.0.0,1 libXpm-3.5.7 libXrender-0.9.4_1 libXt-1.0.5_1 libXxf86vm-1.0.2 libdrm-2.4.11 libgcrypt-1.4.4 libgpg-error-1.7 libiconv-1.13.1 libmng-1.0.10 libpthread-stubs-0.1 libxcb-1.3 nas-1.9.1_3 pkg-config-0.23_1 png-1.2.35 printproto-1.0.4 python26-2.6.2 qt-3.3.8_9 renderproto-0.9.3 xcb-proto-1.5 xextproto-7.0.5 xf86vidmodeproto-2.2.2 xineramaproto-1.1.2 xproto-7.0.15" to run.
Принудительный вызов окна конфигурации (такое синенькое) при сборке порта?
# make config
Предыдущая команда вызывает только окно. Больше ничего она не делает. Если надо вызвать окно, а затем установить порт, можно использовать следующую команду
# make config install clean
Просмотр установленных пакетов
# pkg_info
Какие порты зависят от данного
# pkg_info -R ORBit2-2.6.2 Information for ORBit2-2.6.2: Required by: libgnome-2.2.0.1 nautilus2-2.2.4 gnome2-2.2.1_1 ...
Список установленных файлов данного порта
# pkg_info -xL nmap Information for nmap-4.90.r1: Files: /usr/local/man/man1/nmap.1.gz /usr/local/man/man1/ncat.1.gz /usr/local/bin/nmap /usr/local/bin/ncat /usr/local/share/nmap/scripts/script.db /usr/local/share/nmap/scripts/whois.nse /usr/local/share/nmap/scripts/upnp-info.nse /usr/local/share/nmap/scripts/telnet-brute.nse /usr/local/share/nmap/scripts/sslv2.nse /usr/local/share/nmap/scripts/sshv1.nse ...
Какому порту принадлежит определённый файл?
- pkg_info -W абсолютное_имя_файла
Актуальность версий портов
Чтобы посмотреть версии портов, используем команду pkg_version
# pkg_version -v ImageMagick-nox11-6.3.6.9 < needs updating (port has 6.5.2.10) ZendOptimizer-3.0.1 < needs updating (port has 3.3.0.a) ZendOptimizer-3.3.0.a = up-to-date with port aaccli-1.0 = up-to-date with port apache+mod_ssl-1.3.36+2.8.27 < needs updating (port has 1.3.41+2.8.31) apcupsd-3.12.4 < needs updating (port has 3.14.5_1) arc-5.21o_1 = up-to-date with port ...
Здесь видно какие порты нуждаются в обновлении, а какие нет.
Обновление портов (portupgrade и portdowngrade).
Для обновления служит утилита portupgrade
ключи:
- -f: указывает, что нужно обновить ещё и базу данных портов (база индексов, версий)
- -r: указывает, что нужно обновить ещё порты, от которых зависит данный порт
- -R: указывает, что нужно обновить порты, которые зависят от данного
Обновление порта
# portupgrade -rf opera
Откат порта
# portdowngrade nmap portdowngrade 0.6 by Heiner Eichmann Please note, that nothing is changed in the ports tree unless it is explicitly permitted in step 6! Seeking port nmap ... Found several matches: 1: astro/openmap 2: chinese/p5-Encode-CNMap 3: net/pear-Net_Nmap 4: net-mgmt/lanmap 5: security/nmap 6: security/nmap-i18n-man 7: security/p5-Nmap-Parser 8: security/p5-Nmap-Scanner 9: security/rubygem-nmap-parser 10: security/zenmap Please choose one: 5 Downgrading port: security/nmap Step 1: Checking out port from CVS repository CVS root directory: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established. DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts. Step 2: Reading the port history from the CVS repository Step 3: Analyzing the port history from the CVS repository Step 4: Load port version numbers and present results Keys: : next page d : details p : previous page : leave presentation and downdgrade if wanted ================================================== number date portversion comment 1 2009/07/05 22:24:15 unknown - Update to 4.90RC1 2 2009/04/22 16:25:53 unknown - Replace previous patch with a better one. 3 2009/04/21 15:36:55 unknown - Add patch to work around versions of FreeBSD with broken 4 2009/04/13 09:53:53 unknown - Update to 4.85.b7
Очистка портов
Удаление каталогов work/, в которых находятся уже распакованные исходные тексты, которые мы забыли удалить при помощи make clean
# portsclean -C Cleaning out /usr/ports/*/*/work... Delete /usr/ports/news/gnus-emacs20/work ...
Удаление неактуальных файлов из distfiles/:
# portsclean -DD Detecting unreferenced distfiles... Delete /usr/ports/distfiles/KDE/qt-x11-free-3.1.2.tar.bz2 ...