Instalação silenciosa para apt-get

Instalação silenciosa para apt-get

Para trabalhar tenho que preparar muitos PCs. Eu tenho que colocar vários sudo apt-get installcomandos no terminal - isso é muito tedioso. Eu provavelmente poderia colocar todos eles no script sh (talvez), mas alguns dos comandos exigem a adição de um novo repositório ( sudo add-apt-repository) ou a adição de uma nova chave (??) via gpgcomando - e exigem que o usuário pressione ENTER.

Alguma maneira de dizer “sim” para todos ou algo assim? Isso provavelmente exigiria a adição de algumas opções aos comandos apt-get e gpg?

Responder1

Você pode anexar os sinalizadores --assume-yese --force-yespara dizer sim automaticamente a todos.

sudo apt-get --assume-yes --force-yes install <packagename(s)>

Para tornar essas alterações permanentes, edite /etc/apt/apt.confe adicione as linhas

APT::Get::Assume-Yes "true";    
APT::Get::force-yes "true";

Isto é o que a página de manual doapt-getdiz -

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts and
       run non-interactively. If an undesirable situation, such as
       changing a held package, trying to install a unauthenticated
       package or removing an essential package occurs then apt-get will
       abort. Configuration Item: APT::Get::Assume-Yes.

   --force-yes
       Force yes; this is a dangerous option that will cause apt to
       continue without prompting if it is doing something potentially
       harmful. It should not be used except in very special situations.
       Using force-yes can potentially destroy your system! Configuration
       Item: APT::Get::force-yes.

Responder2

Exceto uma instalação personalizada de um sistema pré-configurado, eu provavelmente usaria um script de instalação executado em cada sistema.

Quais são os comandos que precisam pressionar enter? add-apt-repositoryA ajuda de anuncia sua -yopção:

$ sudo add-apt-repository --help
Usage: add-apt-repository [options] repository

Options:
  -h, --help  show this help message and exit
  -y, --yes   force yes on all confirmation questions

O link de ajuda abaixo diz que para adicionar PPAs "Se uma chave pública for necessária e estiver disponível, ela será baixada e registrada automaticamente." Existem também pacotes como ubuntu-keyring, ubuntu-extras-keyring, linuxmint-keyringetc que contêm as chaves para vários repositórios. E man gpgdeve dizer como fazer com que ele instale automaticamente uma chave, se você não conseguir usá-la.

E/ou você pode editar os sources.listarquivos diretamente com sed/ awk, ou se os sistemas forem idênticos, basta copiar os arquivos "concluídos".
Esta página de ajuda do Ubuntu tem mais informações sobrecomo gerenciar repositórios de software a partir da linha de comando.

E se você estiver preparando muitos sistemas, posso presumir que você baixará os pacotes .deb apenas uma vez e instalará todos eles em cada máquina, em vez de atualizar e baixá-los todos para cada sistema? Se você tiver todos os .deb em uma pasta, este comando instalará todos eles:

  • sudo dpkg -iR [deb-directory]

Para sua informação, eu costumava ver um pacote estranho que esperava por um enterantes de terminar a instalação, aparentemente ele estava dentro de um de seus próprios scripts de configuração, e até mesmo apt-getnão --force-yesfuncionaria com ele. Você não tem nada desse tipo, não é?


Ou, se você pretende apenasforçar um monte de teclas digitadasem um terminal telnet (deve funcionar para outros métodos também), você pode usar um script bash como este:

{
echo "open 192.168.55.55"
sleep 0.5
echo "$login"
sleep 0.5
echo "$password"
sleep 0.5
echo "command1"
sleep 2
echo " "
sleep 5
echo "exit"
} | telnet

Usar diferentes tempos de suspensão para atrasos entre a "digitação", ecoar um espaço com " "ou mesmo apenas echo deve enviar um "retorno" de nova linha.

informação relacionada