Como evitar as solicitações ao instalar uma porta FreeBSD?

26

Quando instalo uma porta, geralmente recebo uma tela de menu para selecionar opções de configuração. Se eu vou instalar um pacote muito grande com muitas dependências, isso será extremamente inconveniente. Existe um sinalizador make para aceitar as respostas padrão para todos esses prompts?

JCCyC
fonte

Respostas:

20

Provavelmente BATCH, descrito nas portas (7) , é o que você está procurando:

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

make rmconfigremove a OPTIONSconfiguração desta porta e você pode usá-la para remover as OPTIONSque foram salvas anteriormente quando você configurou e instalou screen(1)pela primeira vez. OPTIONSsão armazenados no diretório que é especificado via PORT_DB_DIR(o padrão é /var/db/ports).

Se você usa o bash, BATCHpode ser definido automaticamente sempre que você efetuar login:

# echo 'export BATCH=yes' >> ~/.bash_profile
Yasir Arsanukaev
fonte
12
Eu prefiro make config-recursive && make install clean, pois ele fornece todos os diálogos de configuração antecipadamente, enquanto a instalação real provavelmente funcionará sem supervisão.
user569825
Além disso, para reduzir sua carga de trabalho necessária para a configuração, geralmente é uma idéia razoável examinar exclusivamente as opções ativas por padrão e considerar a desativação de qualquer uma delas .
user569825
7
Também execute make config-recursivevárias vezes até parar de obter novas opções (ou seja, pelo menos duas vezes). Sempre que você altera uma opção, ela pode trazer outra dependência com mais opções.
Alex Hirzel #
exportsó irá funcionar em shque não é o shell padrão FreeBSD
ajeh
21

Eu acho que vale a pena mencionar que você nem sempre pode fazer isso. Parece que me lembro, por exemplo, da necessidade de configurar o emacs para adicionar suporte ao xft. Se você deseja ignorar as solicitações de uma única compilação,

make install clean BATCH=yes

irá funcionar também.

hydo
fonte
de alguma forma funciona melhor do que colocar "BATCH = yes" na frente do make. Obrigado.
hari
Vale ressaltar que make install clean BATCH=tem o mesmo efeito, pois de acordo com o manual ports(7), ele deve ser definido apenas. Ele pode ser configurado para qualquer coisa ou nada
Harold Fischer
15

Isso não aceita os padrões automaticamente, como você está perguntando, mas eu gosto do método "make config-recursive", que percorre todas as opções para a porta desejada e opções para todas as dependências. Você não precisa alterar nada, se não quiser, mas percorre todas as telas de seleção de uma só vez, e não sempre que o processo de construção chega a elas.

Feito isso, seu "make install clean" deve ficar praticamente sem supervisão.

Admin do FreeeBSD
fonte
3
Como eu disse no post de @ Yasir - certifique-se de executar isso várias vezes. Se você alterar uma opção que traga outra dependência, se essa dependência tiver opções para configurar, você não a tocará até a próxima execução de make config-recursive.
precisa
Pessoalmente, pense que essa deve ser a resposta aceita.
revprez