Как я могу избежать запросов при установке порта FreeBSD?

26

Когда я устанавливаю порт, мне часто предлагают экран меню для выбора параметров конфигурации. Если я собираюсь установить действительно большой пакет с большим количеством зависимостей, это будет крайне неудобно. Есть ли флаг make для принятия ответов по умолчанию для всех таких запросов?

JCCyC
источник

Ответы:

20

Вероятно BATCH, вы ищете то , что описано в ports (7) :

# cd /usr/ports/sysutils/screen
# export BATCH=yes
# make rmconfig
# make install clean
(no configuration menu is displayed)

make rmconfigудаляет OPTIONSконфигурацию для этого порта, и вы можете использовать ее для удаления OPTIONSранее сохраненных настроек screen(1)при первой настройке и установке . OPTIONSхранятся в директории, которая указана через PORT_DB_DIR(по умолчанию /var/db/ports).

Если вы используете bash, BATCHможет быть установлен автоматически при каждом входе в систему:

# echo 'export BATCH=yes' >> ~/.bash_profile
Ясир Арсанукаев
источник
12
Я предпочитаю make config-recursive && make install clean, так как он дает вам все диалоги конфигурации заранее, в то время как фактическая установка, вероятно, будет работать без присмотра.
user569825
Кроме того, чтобы сократить рабочую нагрузку, необходимую для настройки, часто разумно рассматривать только те параметры, которые активны по умолчанию, и просто рассмотреть возможность отключения любого из них.
user569825
7
Также, пожалуйста, запускайте make config-recursiveнесколько раз, пока не перестанете получать новые опции (т.е. хотя бы дважды). Каждый раз, когда вы изменяете параметр, он может привести к появлению другой зависимости, которая имеет еще больше параметров.
Алекс Хирзель
exportбудет работать только shс оболочкой FreeBSD по умолчанию
ajeh
21

Я думаю, стоит упомянуть, что вы не всегда хотите делать это. Кажется, я помню, например, что мне нужно настроить emacs для добавления поддержки xft. Если вы хотите обойти запросы для одной сборки,

make install clean BATCH=yes

будет работать так же.

гидроэлектростанциями
источник
как-то работает лучше, чем положить "BATCH = yes" перед make. Спасибо.
хари
Стоит отметить, что make install clean BATCH=имеет тот же эффект, что и в соответствии с руководством ports(7), его нужно только определить. Это может быть установлено на что угодно или вообще ничего
Гарольд Фишер
15

Это не принимает автоматически значения по умолчанию, как вы просите, но мне нравится метод "make config-recursive", который пропускает все параметры для выбранного порта, а также параметры для всех зависимостей. Вам не нужно ничего менять, если вы этого не хотите, но вы проходите все экраны выбора одновременно, а не всякий раз, когда к ним приходит процесс строительства.

Как только это будет сделано, ваша "make install clean" должна остаться практически без присмотра.

FreeeBSD Admin
источник
3
Как я уже говорил в посте @ Yasir, убедитесь, что вы выполняете это несколько раз. Если вы измените параметр, который вводит другую зависимость, если у этой зависимости есть параметры для настройки, вы не коснетесь ее до следующего запуска make config-recursive.
Алекс Хирзель
Лично считаю, что это должен быть принятый ответ.
revprez