No RPM Linux, ao instalar qualquer coisa, dnf
a resposta padrão em sua invocação mais simples é "N" (Não) quando solicitado e o usuário precisará conscientemente pressionar "Y" (ou "y") seguido de Enter para instalar os pacotes. Pressionar simplesmente Enter cancelará a instalação.
Fazendo o mesmo em sistemas baseados em Debian, apt
o padrão é "Y" (Sim), o que pode ter consequências críticas para o sistema se você pressionar Enter acidentalmente duas vezes (especialmente porque apt
desinstala pacotes no mesmo processo se eles entrarem em conflito com aqueles que você deseja instalar ).
Portanto, minha pergunta: é possível fazer com apt
que o prompt de também seja padrão para "N"?
Esta deve ser uma configuração e não uma opção de linha de comando com alias, uma vez que os sistemas estão sendo implantados.
Procurando nas fontes :
vários lugares contam com a função
YnPrompt()
para isso:com
Default
o padrão paratrue
:Há uma parte para traduzir/localizar a exibição de um
[Y/n]
ou do menos comum[y/N]
(que existe, veja o exemplo abaixo) em vários idiomas se o prompt estiver ativado:e então a parte que recupera a entrada do prompt se uma resposta ainda não tiver sido forçada por uma configuração do APT .
Portanto, o prompt depende do valor do
Default
argumento com o qual a função foi chamada.Existem apenas alguns lugares onde este argumento é fornecido (para desviar do
[Y/n]
prompt/Yes
resposta padrão), e cada vez é fornecido diretamente como uma constante: não depende de nenhuma configuração do APT. Exemplo encontrado em fontes paraapt-mark
:com false pedindo para solicitar
[y/N]
, dando:Portanto, existem configurações do APT para evitar o acionamento de tal prompt, como
APT::Get::Assume-Yes
ouAPT::Get::Assume-No
para substituir diretamente o prompt porYes
ouNo
, ou ao usar simulação (para o último exemplo:APT::Mark::Simulate
) para não fazer nada nem solicitar, mas não aparece pelo menos até o apt do Debian 12 versão 2.6.1 seja qualquer configuração do APT para manter o prompt e alterar o prompt/resposta padrão de[Y/n]
/Yes
para[y/N]
/No
, nem de[y/N]
/No
para[Y/n]
/Yes
.Conclusão: atualmente esse recurso não está disponível. Provavelmente poderia ser disponibilizado criando um ou dois novos parâmetros de configuração dedicados do APT semelhantes a how
APT::Get::Assume-Yes
eAPT::Get::Assume-No
work, que poderiam ser verificadosYnPrompt()
para alterar como a avaliação doDefault
parâmetro passado é feita. Ou pode haver outros parâmetros de configuração do APT dedicados a um comando específico do APT (por exemplo:apt-mark
) para alterar o que este comando passará ao consultarYnPrompt()
, mas isso não existe hoje.