Comment puis-je mettre à jour les extensions GNOME Shell à partir de la ligne de commande?


14

Parfois, je reçois des messages m'informant qu'il existe une mise à jour pour une de mes extensions GNOME Shell, me dirigeant vers https://extensions.gnome.org/local/ où je peux déclencher une mise à jour via l'interface Web.

Je préfère invoquer des mises à jour à partir de la ligne de commande, comme pour appeler apt update && apt upgrade. Comment puis-je faire ceci?


Vous pouvez utiliser un crontravail pour extraire les extensions shell du /etc/shellsfichier et exécuter des apt-getmises à jour pour chaque valeur - une seule idée.
The Pizza Overlord du

1
@ThePizzaOverlord Ceux-ci ont tendance à ne pas être emballés et lorsqu'ils le sont, ils sont souvent remplacés par les versions fournies directement par Gnome.
Oli

Voir le numéro 906 de gnome-shell pour une demande d'ajout de cette fonctionnalité.
Peterino

Réponses:


10

Les commentaires sur cet article omgubuntu.co.uk énumèrent deux façons possibles:

  1. Le programme d' installation d'extensions de shell GNOME · Github , un script bash pour installer et rechercher des extensions à partir d'extensions.gnome.org . Installez-le avec

    wget -O gnome-shell-extension-installer "https://github.com/brunelli/gnome-shell-extension-installer/raw/master/gnome-shell-extension-installer"
    chmod +x gnome-shell-extension-installer
    sudo mv gnome-shell-extension-installer /usr/bin/
    

    Mettez à jour les extensions 23et 42pour GNOME Shell 3.18.4avec

    ids=( 23 42 )
    gnome=3.18.4
    gnome-shell-extension-installer ${ids[@]} $gnome --yes --update --restart-shell
    

    Mettez à jour toutes les extensions avec

    gnome-shell-extension-installer --yes --update --restart-shell

    Je n'ai pas pu le tester, mais je suis presque sûr que c'est scriptable.

  2. Si vous avez installé vos extensions en clonant leur référentiel git, /path/vous pouvez simplement git pullles référencer les uns après les autres:

    for i in /path/*; do
      git -C"$i" pull
    done
    

    Après cela, vous devez recharger GNOME Shell avec Alt+ F2et rou la commande gnome-shell -r.


0

Le script gnomeshell-extension-manage de Nicolas Bernaerts permet d'installer et de supprimer les extensions GNOME Shell à la fois à l'échelle du système et dans l'espace utilisateur.

Voici comment l'installer:

wget https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/ubuntugnome/gnomeshell-extension-manage
chmod 755 gnomeshell-extension-manage
sudo mv -iv gnomeshell-extension-manage /usr/local/bin/gnome-shell-extension-manage

Cela le rend disponible pour chaque utilisateur: (à côté des commandes GNOME similaires)

$ gnome-shell-extension-manage 
Install/remove extension from Gnome Shell Extensions site https://extensions.gnome.org/
Extension ID should be retrieved from https://extensions.gnome.org/extension/<ID>/extension-name/
Version installed will be targeted as the same as Gnome Shell or the next available one
Parameters are :
  --install               Install extension (default)
  --remove                Remove extension
  --user                  Installation/remove in user mode (default)
  --system                Installation/remove in system mode
  --version <version>     Force Gnome version (use 'latest' to force latest one)
  --extension-id <id>     Extension ID in Gnome Shell Extension site (compulsory)

Le Gnome Shell - Gestion des extensions à partir du billet de blog de la console explique en détail comment il est utilisé. Pour mettre à jour une extension, vous devez ajouter --version latestà la commande.


Techniquement parlant, les deux principales différences avec gnome-shell-extension-installer d'Ian Brunelli sont que vous pouvez effectuer des installations à l'échelle du système et qu'il utilise wgetau lieu de curltélécharger les extensions.


Si vous exécutez en gnome-shell-extension-installtant que sudo, il sera installé à l'échelle du système.
eduncan911
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.