web-dev-qa-db-fra.com

Comment vérifier si PPA est déjà ajouté à la liste des sources apt dans un script bash

Est-ce que quelqu'un sait comment vérifier si un PPA est déjà ajouté à mon système avant que je l'ajoute avec la commande add-apt-repository dans un Shell script.

Ce serait très utile.

Je vous remercie.

9
Josh

Vous pouvez faire quelque chose comme ça:

the_ppa=...  # set appropriately

if ! grep -q "^deb .*$the_ppa" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
    # commands to add the ppa ...
fi

Remarques:

  • grep se termine avec succès s'il trouve une correspondance
  • Le ! le nie, donc les commandes seront exécutées s'il n'y a pas de correspondance = ppa non ajouté
  • Le drapeau -q donne grepsilencieux, de sorte qu'il n'imprime pas les lignes correspondantes. Ce serait juste du bruit, il suffit de savoir s'il y a correspondance ou non, pour lequel le code de sortie est parfait
  • Le préfixe ^deb .* permet de s’assurer que la ligne correspondante commence par deb, afin d’exclure les lignes mises en commentaire.
9
janos

Ouvrez votre terminal et tapez cette commande

grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep fogger

remplacez le brumisateur par le nom du PPA.

enter image description here

2
rɑːdʒɑ

En supprimant les fichiers list.save, les sources, assurez-vous uniquement des lignes deb et comptez-les pour "fogger" ppa:

ppa_added=`grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v list.save | grep -v deb-src | grep deb | grep fogger | wc -l`

echo $ppa_added
0
Bellera