Instale a lista de pacotes usando o apt-get

8

Tenho uma nova instalação do Lubuntu e gostaria de instalar pacotes de uma determinada lista, sem precisar digitar sudo apt-get install package_name. É possível?

Não estou falando dos scripts pós-instalação, isso é algo completamente diferente.

sintagma
fonte

Respostas:

5

Sim, basta listar todos os pacotes em uma linha separada por um espaço. por exemplo

sudo apt-get install package_name1 package_name2 package_name3 package_name4
Sparhawk
fonte
Obrigado, como posso parar o apt-get de me perguntar Y / n se realmente quero instalar o pacote?
Syntagma
2
Adicione a -yopção É muito longo, mas você pode ler man apt-getpara obter mais informações.
Sparhawk 26/10
23

Se você possui um arquivo (digamos pkglist) que contém uma lista de pacotes a serem instalados, como:

pkg1
pkg2
pkg3

ou

pkg1 pkg2 pkg3

Em seguida, você pode instalar esses pacotes aptusando o seguinte comando:

  1. sudo apt-get install $(cat pkglist)
  2. xargs sudo apt-get install < pkglist

Para obter mais informações, apt-get installvisite a man apt-getseção de instalação.

Pandya
fonte
2
Se você quer isso para instalar ao longo quaisquer requisitos que você terá que fazerxargs sudo apt-get -y install < pkglist
Emanuel Ey
+1 Se você listar um pacote por linha, o arquivo deve usar terminações de linha Unix ou o apt-get falhará.
Rath
Você também pode passar o nome do arquivo diretamente para xargs com o -a ou a opção --arg-file: xargs -a pkglist sudo apt install.
21718 Ryan
1

Coloque todos os nomes de pacotes em um arquivo (um nome de pacote para cada linha). E, em seguida, execute o comando abaixo para instalar os pacotes fornecidos automaticamente.

while read -r line; do sudo apt-get -y install "$line"; done < /path/to/the/packages/file

Exemplo:

$ cat file
vlc
firefox
$ while read -r line; do sudo apt-get install "$line"; done < file
[sudo] password for avinash: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vlc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 499 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  ttf-lyx
The following packages will be upgraded:
  firefox
1 upgraded, 0 newly installed, 0 to remove and 498 not upgraded.
Need to get 35.8 MB of archives.
After this operation, 24.3 MB of additional disk space will be used.
Get:1 http://ftp.cuhk.edu.hk/pub/Linux/ubuntu/ trusty-updates/main firefox amd64 33.0+build2-0ubuntu0.14.04.1 [35.8 MB]
0% [1 firefox 67.0 kB/35.8 MB 0%]                           10.4 kB/s 57min 16s^
Avinash Raj
fonte
Isso não seria muito mais lento do que apenas colocar os pacotes em uma linha, pois ele deve ler as listas de pacotes e criar árvores de dependência etc. para cada pacote, em vez de fazê-lo uma vez?
Sparhawk