53 votes

Comment mettre à jour automatiquement l'éditeur Atom ?

Mise à jour automatique des Atome n'est pas encore prise en charge par Ubuntu. Depuis leur dépôt GitHub :

Actuellement, seule une version 64 bits est disponible.

Téléchargez atom-amd64.deb depuis la page des versions d'Atom. Exécutez sudo dpkg --install atom-amd64.deb sur le paquet téléchargé. Lancez Atom à l'aide de la commande atom installée. La version Linux n'est pas mise à jour automatiquement, vous devrez donc répéter ces étapes pour mettre à jour vers les versions futures.

J'ai essayé d'utiliser PPA Webupd8 mais cela ne fonctionne pas pour moi.

70voto

A.B. Points 84870

TL;DR Si vous ne souhaitez pas utiliser le PPA vous pouvez utiliser un script pour télécharger et installer automatiquement via cron.


  1. Créer un nouveau fichier atom-auto-update

    sudo nano /usr/local/bin/atom-auto-update
  2. Ajouter les lignes suivantes

    #!/bin/bash
    wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
    wget -q $(awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' /tmp/latest) -O /tmp/atom-amd64.deb
    dpkg -i /tmp/atom-amd64.deb
  3. Enregistrer le fichier et le rendre exécutable

    sudo chmod +x /usr/local/bin/atom-auto-update
  4. Tester le script.

    sudo atom-auto-update
  5. Créer un cronjob pour le script.

    sudo crontab -e
  6. Ajouter cette ligne

    par exemple : à 10 heures chaque semaine

    0 10 * * 1 /usr/local/bin/atom-auto-update

    ex : à 10 heures tous les jours

    0 10 * * * /usr/local/bin/atom-auto-update      

Explication

  • wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest

    Télécharger le site contenant les informations sur la dernière version

  • wget -q $(awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' /tmp/latest) -O /tmp/atom-amd64.deb

    1. … awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' /tmp/latest …

      Extraire le lien de téléchargement

    2. wget -q $( … ) -O /tmp/atom-amd64.deb

      Télécharger le fichier DEB

  • dpkg -i /tmp/atom-amd64.deb

    Installer le fichier DEB

21voto

Darren Points 751

A.B La réponse de 's' est une bonne solution ! J'ai ajouté l'option show progress bar dans le code bash pour notifier la progression :

#!/bin/bash
wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
wget --progress=bar -q 'https://github.com'$(cat /tmp/latest | grep -o -E 'href="([^"#]+)atom-amd64.deb"' | cut -d'"' -f2 | sort | uniq) -O /tmp/atom-amd64.deb -q --show-progress
dpkg -i /tmp/atom-amd64.deb

5voto

Chukiat Points 51

Comme la réponse précédente avec une modification mineure, pour permettre la mise à jour au démarrage, voici la procédure

  1. Créez le fichier en exécutant la commande :

    sudo nano /usr/local/bin/atom-update  

puis tapez le script ci-dessous (utilisez un éditeur de texte comme "gedit" ou "mousepad" au lieu de "nano", c'est plus pratique) et sauvegardez-le.

#!/bin/bash    
wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
MATCHEDROW=$(awk -F '[<>]' '/href=".*atom-amd64.deb/' /tmp/latest)
LATEST=$(echo $MATCHEDROW | grep -o -P '(?<=href=").*(?=" rel)')
VER_LATEST=$(echo $MATCHEDROW | rev | cut -d"/" -f 2 | rev | sed 's/v//g')
VER_INST=$(dpkg -l atom | tail -n1 | tr -s ' ' | cut -d" " -f 3)

if [ "$VER_LATEST" != "$VER_INST" ]; then
   wget --progress=bar -q "https://github.com/$LATEST" -O /tmp/atom-amd64.deb --show-progress
   dpkg -i /tmp/atom-amd64.deb
   echo "Atom has been update from $VER_LATEST to $VER_INST"
   logger -t atom-update "Atom has been update from $VER_INST to $VER_LATEST"
else
   echo "Atom version $VER_INST is the latest version, no update require"
   logger -t atom-update "Atom version $VER_INST is the latest version, no update require"
fi
  1. Pour rendre le fichier exécutable :

    sudo chmod +x /usr/local/bin/atom-update
  2. Vous pouvez maintenant mettre à jour manuellement Atom en tapant la commande suivante :

    sudo atom-update
  3. Connectez-vous à votre racine, puis ajoutez la ligne ci-dessous à /etc/rc.local ( sudo nano /etc/rc.local ) juste avant le exit 0 commandement :

    /usr/local/bin/atom-update  

Cela permettra au script script de la mise à jour atomique de s'exécuter à chaque fois que vous allumez votre PC.

  1. Pour vérifier que le script s'est bien exécuté au démarrage, redémarrez votre PC et ouvrez le terminal puis tapez :

    cat /var/log/syslog | grep 'atom.*'  

Vous verrez le message de journal correspondant.

3voto

hordur Points 101

S'appuyer sur A.B j'ai ajouté la vérification de la version pour éviter les téléchargements/installations inutiles :

#!/bin/bash

TMP_DIR=$(mktemp -d)

TMP_LATEST="${TMP_DIR}/latest"
TMP_FILE="${TMP_DIR}/atom-amd64.deb"

wget -q https://github.com/atom/atom/releases/latest -O ${TMP_LATEST}
LATEST=$(awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' ${TMP_LATEST})
VER_LATEST=$(echo $LATEST | rev | cut -d"/" -f 2 | rev | sed 's/v//g')

VER_INST=$(dpkg -l atom | tail -n1 | tr -s ' ' | cut -d" " -f 3)

if [ "$VER_LATEST" != "$VER_INST" ]; then
  wget -q $LATEST -O $TMP_FILE
  VER_DOWN=$(dpkg-deb -f $TMP_FILE Version)
  if [ "$VER_DOWN" != "$VER_INST" ]; then
    dpkg -i $TMP_FILE
  fi
fi

rm -rf "${TMP_DIR}"

Edit : Je devrais préciser que cela remplacerait le contenu du fichier /usr/local/bin/atom-auto-update script mentionné par A.B. dans sa réponse. Les autres étapes de la réponse sont les mêmes.

3voto

Nikita Unkovsky Points 131

Eh bien, une autre version plus élégante avec le support de la branche beta, si script est lancé avec l'argument beta : $ update-atom beta

#!/bin/bash
DLPATH="https://atom.io/download/deb"
DLDEST="$HOME/Downloads/atom-amd64.deb"

if ! [ -z "$1" ] && [ $1=="beta" ];  then
  echo "Updating beta"
  DLPATH="$DLPATH?channel=beta"
  DLDEST="$HOME/Downloads/atom-amd64-beta.deb"
else
  echo "Updating stable"
fi

rm -f $DLDEST
wget -O $DLDEST $DLPATH 
sudo dpkg -i $DLDEST

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