
Para trabalhar tenho que preparar muitos PCs. Eu tenho que colocar vários sudo apt-get install
comandos 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 gpg
comando - 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-yes
e --force-yes
para 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.conf
e adicione as linhas
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Isto é o que a página de manual doapt-get
diz -
-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-repository
A ajuda de anuncia sua -y
opçã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-keyring
etc que contêm as chaves para vários repositórios. E man gpg
deve dizer como fazer com que ele instale automaticamente uma chave, se você não conseguir usá-la.
E/ou você pode editar os sources.list
arquivos 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-get
não --force-yes
funcionaria 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.