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


26

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

Ответы:


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" должна остаться практически без присмотра.


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

Лично считаю, что это должен быть принятый ответ.
— revprez
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.