2 votes

Comment puis-je (dé)activer un PPA à partir de la ligne de commande avec une seule commande ?

Ubuntu offre une interface graphique simple qui vous permet d'éditer, de (dé)activer et de supprimer des PPA.

Mais parcourir tous les dialogues et menus de l'interface graphique peut parfois s'avérer fastidieux, surtout si vous avez ajouté de nombreux PPA à votre système.

C'est pourquoi je me demandais s'il existait un moyen de désactiver (et d'activer) un PPA à partir de la ligne de commande.


Nota : Je ne parle pas d'ajouter/supprimer le PPA (c'est assez facile à faire) : sudo add-apt-repository ppa / sudo add-apt-repository --remove ppa ). Ce que je recherche, c'est un moyen de désactiver temporairement un PPA et de le réactiver à volonté, le tout depuis le CLI.


Edita:

Les réponses de Sushantp606 et de Davidson Chua ont constitué un bon point de départ et m'ont amené à modifier la portée de ma question. Il est certainement bon de savoir que les référentiels peuvent être gérés avec la commande sources.list mais cela me semble être une tâche très fastidieuse. J'aimerais savoir s'il existe un moyen d'automatiser cette opération de la même manière que la fenêtre Propriétés du logiciel.

Idéalement, j'aimerais trouver une commande qui permette d'activer et de désactiver rapidement un PPA par son adresse, par exemple :

ppa_activate ppa:synapse-core/ppa

et

ppa_deactivate ppa:synapse-core/ppa

4voto

sourav c. Points 40637

Même un script plus simple pour basculer entre l'activation et la désactivation d'un ppa particulier. Sauvegardez le code donné ci-dessous dans un fichier, par exemple toggle_ppa.sh .

#!/bin/bash
#
# toggle_ppa.sh
#
# created by souravc (https://askubuntu.com/users/127327/)
# modified by Glutanimate (https://askubuntu.com/users/81372/)
#
# originally released at https://askubuntu.com/q/383605/81372
#
# DESCRIPTION:  Detects if a PPA is active/inactive and deactivates/activates it
#               on user confirmation.
#
# USAGE:        toggle_ppa.sh ppa:launchpaduser/ppaname

### VARIABLES

SOURCEDIRECTORY=/etc/apt/sources.list.d
PPA="$1"

### USAGE CHECKS

## Arguments

if [ -z "$PPA" ]
then
    echo "Error: Please provide a PPA name to toggle between activation/deactivation"
    echo "The PPA name should be formatted as it appears on launchpad, e.g.:
"$0" ppa:webupd8team/y-ppa-manager"
    exit 1
fi

## Root privileges

if [ "$(whoami)" != "root" ]; then
  echo "Error: This script needs root privileges. Restarting..."
  sudo "$0" "$1"
  exit
fi

### MAIN

SOURCELIST_NOPFX="${PPA#*:}" #remove 'ppa:' prefix
SOURCELIST="${SOURCELIST_NOPFX////-}"-$(lsb_release -cs) #replace all slashes with dashes, include release
SOURCEFILE="$SOURCEDIRECTORY"/"$SOURCELIST".list #compose sources list path

if [ -e "$SOURCEFILE" ]
then
    echo "Processing $SOURCEFILE..."
    SOURCE_COMMENTED=$(grep "^\#deb\ " "$SOURCEFILE") #check if sources line is commented
    if [ -z "$SOURCE_COMMENTED" ]
    then
        echo "$PPA is active. Going to deactivate. Proceed? [ y/n ]"
        read ANSWER
        if [ $ANSWER == "y" ]
        then
            sed -i "s/^deb\-src/\#deb\-src/" $SOURCEFILE
            sed -i "s/^deb\ http/\#deb\ http/" $SOURCEFILE
            echo "Updating package index files..."
            sudo apt-get update
            echo "Done."
        else
            echo "Aborted."
            exit 0
        fi
    else
        echo "$PPA is inactive. Going to activate. Proceed? [ y/n ]"
        read ANSWER
        if [ $ANSWER == "y" ]
        then
            sed -i "s/^\#deb\-src/deb\-src/" $SOURCEFILE
            sed -i "s/^\#deb\ http/deb\ http/" $SOURCEFILE
            echo "Updating package index files..."
            sudo apt-get update
            echo "Done."
        else
            echo "Aborted."
            exit 0
        fi
    fi
else
    echo "Error: Source file at $SOURCEFILE for $PPA does not exist. Please check PPA name."
    exit 0
fi

Suivre le procédure donnée à l'autre réponse pour conserver le fichier dans le PATH et le rendre exécutable.

Utilisation

sudo toggle_ppa.sh <full-ppa-name>

Exemple

sudo toggle_ppa.sh ppa:webupd8team/java

H

Le principe de fonctionnement de ce code est le suivant même chose que dans mon autre réponse . Le code agit de manière très interactive. Lorsque quelqu'un l'exécute avec le nom du PPA comme argument, il affiche l'état actuel du PPA et ce que le code va faire en cas d'exécution réussie. Il demande ensuite la permission à l'utilisateur. Ce n'est que si l'utilisateur entre 'y' pour confirmer le code modifiera l'état de l'APP et l'activera/désactivera. Il s'interrompt immédiatement si l'utilisateur met un 'n' pour non.

3voto

Nick Hutchinson Points 1831

Par édition

/etc/apt/sources.list

à partir de la ligne de commande, nous pouvons ajouter, supprimer ou désactiver temporairement des dépôts de logiciels.il suffit de commenter le dépôt indésirable via le terminal .

Je ne peux pas faire la commande, c'est juste une idée. Faites-moi savoir si vous pouvez le connecter via une commande de terminal comme-

La commande pour commenter les dépôts de sources dans /etc/apt/sources.list est la suivante :

sudo sed -i 's/^deb\-src/\#deb\-src/' /etc/apt/sources.list

et pour le dé-commenter, utilisez

sudo sed -i 's/^\#deb\-src/deb\-src/' /etc/apt/sources.list

utiliser le dépôt que vous voulez désactiver/commenter au lieu de s/^\#deb\-src/deb\-src/ Avant de procéder à une quelconque modification, il convient de sauvegarder le fichier du répertoire des sources comme indiqué ci-dessous.

sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup

2voto

Davidson Chua Points 223

Jetez un coup d'œil à Comment désactiver un PPA particulier ? . Bien que la première réponse de qeoh utilise le frontend GTK, la seconde réponse de minimec suggère de commenter le ppa dans /etc/apt/sources.list . Je ne sais pas si c'est ce que vous recherchez, mais c'est une méthode possible.

0voto

Je sais que cette réponse ne correspond pas à votre demande (une solution à commande unique). Mais ce fil de discussion est l'un des premiers résultats de Google pour les personnes cherchant comment désactiver un PPA sans le supprimer.

La méthode la plus simple consiste à désactiver par des commentaires l'entrée dans /etc/apt/sources.list.d dossier. C'est d'ailleurs ainsi que l'expression " Logiciels et mises à jour "fonctionne lorsque l'on désactive une entrée dans l'espace " Autres mises à jour Onglet ".

Exemple : désactiver les mises à jour de Chrome

Ouvrez un terminal et éditez /etc/apt/sources.list.d/google-chrome.list fichier :

sudo nano /etc/apt/sources.list.d/google-chrome.list

Désactivez ensuite le deb ligne comme celle-ci :

# deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

Sauvegardez-le et c'est fait.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X