Ports


 * Handbook
 * ports/get - получение портов
 * Make.conf - конфиругирования собиралки из портов
 * ports/update - обновление дерева портов
 * ports/upgrade - обновление программ из портов поставленных
 * ports/use - использование
 * ports/search - поиск
 * ports/check
 * ports/reinstall - переустановка программы


 * portupgrade
 * pkg_info
 * portsnap
 * portversion - сравнить версии ПО установленного и того что находится в дереве портов
 * Psearch - быстрый поиск в портах. надо ставить из портов

Описание тут /usr/ports/Mk/bsd.port.mk и man ports

Просмотреть все цели (targets) sed -En 's/^([[:alnum:]_-]*):([^=].*|$)/\1/p' /usr/ports/Mk/bsd.port.mk | sort -u

В комментариях вывод

make config-recursive takes all-depends-list as input


 * make run-depends-list

Вывод make search name=screen Port:  screen-4.0.3_12 Path:  /usr/ports/sysutils/screen Info:  A multi-screen window manager Maint: cy@FreeBSD.org B-deps: R-deps: gettext-0.18.1.1 libiconv-1.13.1_1 texinfo-4.13.20110529_1 WWW:   http://www.gnu.org/software/screen/

make all-depends-list Ничего не выдает. ОТкуда берутся эти депенсы, если Makefile только упоминание про texinfo.

В итоге с комплектацией по умолчанию ничего кроме screen не установилось.

Расчет зависимостей all-depends-list учитывает содержимое OPTIONS и меняется в зависимости от того, что выбрано или расситывает на основе значений по умолчанию, если они не выбраны.

/usr/ports/x11-servers/xorg-server make all-depends-list|wc -l 126

/usr/ports/x11/xorg - X.Org complete distribution metaport make all-depends-list | wc -l 256

без batch mode поставить все автоматически (make BATCH=yes -C/usr/ports/x11/xorg install clean). для этого предварительно на все запросы надо ответить. Предположительно конфигурационный окна покажет и для тех портов что уже установлены (не знает, какие стоят, а какие нет). А еще момент, что если приложение уже стоит с некими параметрами то для него не покажут окно конфигурации. cd /usr/ports/x11/xorg make config-recursive make install

Цель config-conditional должна указать на то что уже сконфигурированные порты надо пропустить. Она не рекурсивная. Но если порты уще сконфигурированы, то повторно не покажется выбор их опций...

при необходимости повторить конфигурирование make -C /usr/ports/x11-wm/icewm/ rmconfig-recursive ===> Removing user-specified options for icewm-1.3.7_1 and dependencies ===> Removing user-configured options for icewm-1.3.7_1 ===> No user-specified options configured for gmake-3.82

Если нужно просмотреть все выбранные опции make showconfig-recursive

Еще есть -V LIB_DEPENDS -V RUN_DEPENDS

1) It surpresses config target and if a port has OPTIONS set, then you may get surprised once you've configured the port and ticked/unticked an option

2) It includes EXTRACT_DEPENDS, PATCH_DEPENDS and BUILD_DEPENDS, which typically don't end up in run dependencies. Looking at the subject this may not be what you need.

make -C /usr/ports/category/portname -V LIB_DEPENDS -V RUN_DEPENDS

will list the dependencies that will be registered in /var/db/pkg. Recurse through the list, take the second field split by : and run the above for each origin. Something like the script below, which calls the config target if not configured, remembers already visited dependencies and then prints the runtime dependency list.

What *is* a problem is make config-recursive, which doesn't take account of any dependencies added as a result of OPTIONS changes made during the config-recursive process.

This is relatively easily fixed, as make config-recursive actually runs make config-conditional for everything in all-depends-list, so if you keep running make config-recursive until nothing happens you can be reasonably sure you've dealt with all the unexpected dialogues that might otherwise pop up.

This is worth knowing if you like doing overnight unattended installs and don't want to accept default settings (so can't use BATCH=yes). Until I discovered it I had immense frustration setting an installation/upgrade running only to come back the next day and find a dialogue sitting on the screen.

http://lists.freebsd.org/pipermail/freebsd-questions/2009-April/196535.html

http://forums.freebsd.org/showthread.php?t=24314 неправильная работа портов

Вопросы

 * Как узнать что поставилось за очередной раз установки?
 * Как удалить все что поставилось за очередной раз?
 * Ставим порты, потом удаляем rmconfig, потом снова запускаем установку и создаются options у тех что стоит, но уже отличающиеся от тех (потому что в тот раз вручную где-то делались выборы). Соответственно, получается что стоит в другой комплектации порт. А на эти файлы ориентируется make при рассчете депенсов.

 Your installation of intltool is incomplete.

To correct this problem, make sure that ports-mgmt/portupgrade is installed, and then run the command "portupgrade -f intltool".

If portupgrade does not work, and you recently updated Perl, you should reinstall all of your Perl modules. The best way to do this is with the command: portupgrade -f p5-\*



В make.conf BATCH="YES" и не будет синих экранов.