Existe-t-il un moyen de sélectionner les paquets dans un référentiel ppa que vous ajoutez? Autrement dit, exclure certains de la mise à jour tout en incluant d’autres?
Par exemple, je veux seulement le paquet chrome-browser de ce dépôt mais pas les autres. Donc, je ne veux pas sudo apt-get upgrade
que les autres paquets de ce ppa (en plus du navigateur chrome) soient installés par-dessus mes paquets existants, juste celui-là.
Je me rends compte que c’est une licence pour me tirer dans le pied si j’ai mal interprété les dépendances et exclu celles qui sont nécessaires à celles que j’ai incluses, mais je sais pertinemment que les autres paquets ne sont pas des dépendances pour celui-là.
Est-ce possible? Peut-être qu'il existe un fichier liste blanche / liste noire ou quelque chose?
Réponses:
Trouvé un moyen de le faire.
L'astuce consiste à utiliser deux clauses d'épinglage. Le premier à refuser TOUS les paquets du PPA et le second à sélectionner ceux que vous voulez.
Donc pour l'exemple ci-dessus, j'ajoute d'abord le ppa comme d'habitude:
Maintenant, si je lance la politique d'apt-cache, cela me montrera qu'il existe une version plus récente de chrome-browser disponible et qu'elle s'installera avec une mise à niveau car elle a la même priorité (500) que celle de mon navigateur chrome actuel.
C’est génial pour ce paquet, mais je ne veux pas que les autres utilisateurs de ce ppa (qui ont également une priorité de 500) s’installent. À l'heure actuelle, si j'essaie de mettre à niveau, j'obtiendrai plus que les packages de chrome que je veux dans ce référentiel:
Donc, ce que je peux faire, c'est dire à apt que je veux que tous les paquets de ce ppa, webapps-preview dans ce cas, aient une priorité inférieure à l' exception de ceux avec "chrome" dans leur nom. Le mécanisme pour cela consiste à épingler un paquet
Je crée un fichier dans /etc/apt/preferences.d/ avec deux clauses. La première demande de donner à tous les paquetages de webapps-preview ppa une priorité inférieure à celle du paquet standard (afin qu’ils ne soient pas préférés même s'ils ont un numéro de version plus élevé. La seconde clause annule en partie la première en disant que ppa avec "chrome" dans leur nom a la même priorité que les autres paquets pour qu’il soit installé (en ayant un numéro de version supérieur).
Pour identifier la chaîne correcte pour l'option "Pin: release", nous pouvons utiliser à nouveau la politique d'apt-cache.
Pour les versions d'apt <0.8.14, les paquets épinglés doivent être spécifiés explicitement car les caractères génériques ne fonctionnent pas:
Et maintenant, quand j'essaye de mettre à jour, je ne reçois que les paquets que je veux de ce ppa et pas les autres. Tous gentiment cherry choisi pour moi:
la source
Vous pouvez également sélectionner la version à installer à l'aide du
?origin
sélecteur:Donc, dans votre cas spécifique, vous pouvez utiliser:
Ou vous pouvez spécifier la version en utilisant
<packagename>=<version>
:la source
Vous pouvez réellement "sélectionner" certains paquets via Synaptic et c'est très simple. Cela fonctionne comme ceci:
Si vous souhaitez le faire pour certains PPA uniquement, choisissez "Origine" (coin inférieur gauche) dans la fenêtre Synaptique puis choisissez le PPA que vous souhaitez modifier.
choisissez tous les paquets que vous ne voulez plus mettre à jour automatiquement.
choisissez le menu "Package / Lock Version". Tous les paquets que vous avez choisis ne seront plus mis à jour automatiquement jusqu'à ce que vous les déverrouilliez à nouveau.
la source