O Apt-get instala vários pacotes sem parar


25

Estou criando um script bash que instala vários pacotes usando o apt-get install. No entanto, percebo que, se houver uma linha que diz:

sudo apt-get install package1 package2 package3

e um dos pacotes não for encontrado, nenhum dos outros será instalado. Como faço para continuar, mesmo que não consiga encontrar um dos pacotes?

Desde já, obrigado.

Respostas:


18

Eu sugiro uma apt-getopção

sudo apt-get --ignore-missing install $list_of_packages

mas esteja ciente de que as dependências ausentes não podem ser ignoradas e, mesmo se você usar, --forcepoderá obter um sistema danificado.


1
Observe que --ignore-missingapenas soluções alternativas para um problema no download. Veja superuser.com/a/844627/106974
IsaacS

3
Isso realmente não funciona.
precisa saber é

9
for i in package1 package2 package3; do
  sudo apt-get install $i
done

5
Um desempenho um pouco brutal em termos de desempenho (a árvore de dependência de pacotes está sendo criada a partir do zero para cada iteração), mas deve funcionar bem.
Serge Broslavsky

Como o @blueskin mencionou, o uso da -yopção seria bom se você não quisesse interagir com ela, especialmente ao instalar uma lista enorme de pacotes.
pd12

0

Instale cada pacote como um comando separado e não em um único comando, desta maneira, se um falhar na instalação devido a um erro não encontrado ou outro erro, ele não impedirá a instalação dos outros. Para o qual você pode usar o loop 'for' como abaixo. Além disso, lembre-se de usar o -ysinalizador se estiver instalando muitos pacotes, para evitar o caos de digitar yespara cada um.

INSTALL_PKGS="pk1 pk2 pk3 pk4 pk5 ... and so ... on ..pk_gogol"
for i in $INSTALL_PKGS; do
  sudo apt-get install -y $i
done

@Fabby Eu editei o texto para torná-lo explícito para sua satisfação
Blueskin

1
Parece mais uma edição da resposta existente aqui do que uma nova resposta. ¯ \ _ (ツ) _ / ¯ Desculpe! -1 ...
Fabby
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.