AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 772490
Accepted
Phoenix
Phoenix
Asked: 2024-03-16 20:04:02 +0800 CST2024-03-16 20:04:02 +0800 CST 2024-03-16 20:04:02 +0800 CST

apt: altere a resposta padrão de 'Y' para 'N'

  • 772

No RPM Linux, ao instalar qualquer coisa, dnfa 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, apto padrão é "Y" (Sim), o que pode ter consequências críticas para o sistema se você pressionar Enter acidentalmente duas vezes (especialmente porque aptdesinstala pacotes no mesmo processo se eles entrarem em conflito com aqueles que você deseja instalar ).

Portanto, minha pergunta: é possível fazer com aptque 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.

debian
  • 1 1 respostas
  • 37 Views

1 respostas

  • Voted
  1. Best Answer
    A.B
    2024-03-16T21:45:53+08:002024-03-16T21:45:53+08:00

    Procurando nas fontes :

          if (YnPrompt(_("Do you want to continue?")) == false)
    

    vários lugares contam com a função YnPrompt()para isso:

    // YnPrompt - Yes No Prompt.                      /*{{{*/
    // ---------------------------------------------------------------------
    /* Returns true on a Yes.*/
    bool YnPrompt(char const * const Question, bool const Default, bool const ShowGlobalErrors, std::ostream &c1o, std::ostream &c2o)
    {
    ...
    
    bool YnPrompt(char const * const Question, bool const Default)
    {
       return YnPrompt(Question, Default, true, c1out, c2out);
    }
    

    com Defaulto padrão paratrue :

    // prompting
    APT_PUBLIC bool YnPrompt(char const *const Question, bool Default = true);
    bool YnPrompt(char const * const Question, bool const Default, bool const ShowGlobalErrors, std::ostream &c1o, std::ostream &c2o);
    

    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:

       if (Default == true)
          // TRANSLATOR: Yes/No question help-text: defaulting to Y[es]
          //             e.g. "Do you want to continue? [Y/n] "
          //             The user has to answer with an input matching the
          //             YESEXPR/NOEXPR defined in your l10n.
          c2o << " " << _("[Y/n]") << " " << std::flush;
       else
          // TRANSLATOR: Yes/No question help-text: defaulting to N[o]
          //             e.g. "Should this file be removed? [y/N] "
          //             The user has to answer with an input matching the
          //             YESEXPR/NOEXPR defined in your l10n.
          c2o << " " << _("[y/N]") << " " << std::flush;
    

    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 Defaultargumento com o qual a função foi chamada.

    Existem apenas alguns lugares onde este argumento é fornecido (para desviar do [Y/n]prompt/ Yesresposta padrão), e cada vez é fornecido diretamente como uma constante: não depende de nenhuma configuração do APT. Exemplo encontrado em fontes para apt-mark:

          if (YnPrompt(_("Do you want to continue?"), false) == false)
    

    com false pedindo para solicitar [y/N], dando:

    # apt-mark minimize-manual
    The following packages will be marked as automatically installed:
    [...]
    Do you want to continue? [y/N] 
    #
    

    Portanto, existem configurações do APT para evitar o acionamento de tal prompt, como APT::Get::Assume-YesouAPT::Get::Assume-No para substituir diretamente o prompt por Yesou No, 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]/ Yespara [y/N]/ No, nem de [y/N]/ Nopara [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-Yese APT::Get::Assume-Nowork, que poderiam ser verificados YnPrompt()para alterar como a avaliação do Defaultparâ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 consultar YnPrompt(), mas isso não existe hoje.

    • 1

relate perguntas

  • Configuração do GRUB para reconhecer diferentes ambientes de desktop (instalações) da mesma distribuição Linux

  • astyle não altera a formatação do arquivo de origem

  • Recebendo e-mail em um novo Debian fresco

  • Debian Stretch: gnome-software segfault em libgs_plugin_systemd-updates.so

  • Como digitar ü no Pinyin IME?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve