apt-get masse installer des paquets à partir d'un fichier?

29

J'ai un fichier texte avec beaucoup de noms de paquets.

package1
package2

# comment
# installing package3 because it was needed for...
package 3

package 4

Comment puis-je installer tous les paquets dans le fichier texte sans supprimer les commentaires?

    
posée James Mitch 08.02.2013 - 14:23
la source

3 réponses

39

Quelque chose de ce genre devrait faire l'affaire.

apt-get install $(grep -vE "^\s*#" filename  | tr "\n" " ")

La construction $ (quelquechose) exécute la commande quelquechose , en insérant sa sortie dans la ligne de commande.

La commande grep exclura toute ligne commençant par un #, en autorisant éventuellement des espaces avant. La commande tr remplace alors les nouvelles lignes par des espaces.

    
réponse donnée andol 08.02.2013 - 14:30
la source
10

La commande suivante est une (légère) amélioration par rapport à l’alternative car sudo apt-get install n’est pas exécuté lorsque la liste des packages est vide.

xargs -a <(awk '! /^ *(#|$)/' "$packagelist") -r -- sudo apt-get install

Notez que l’option -a lit les éléments directement à partir d’un fichier au lieu de l’entrée standard. Nous ne voulons pas canaliser un fichier dans xargs car stdin doit rester inchangé pour être utilisé par apt-get .

    
réponse donnée Six 13.08.2015 - 12:59
la source
2

Avec un fichier de liste de packages package.list , essayez:

sudo apt-get install $(awk '{print '} package.list)
    
réponse donnée cmcginty 11.05.2018 - 08:21
la source

Lire d'autres questions sur les étiquettes