La mise à jour automatique de la fonctionnalité Atom n'est pas encore prise en charge pour Ubuntu. Depuis leur référentiel GitHub:
Actuellement, seule une version 64 bits est disponible.
Téléchargez atom-AMD64.deb à partir de la page Atom releases. Exécutez Sudo dpkg --install atom-AMD64.deb sur le package téléchargé. Lancez Atom à l'aide de la commande atom installée. Actuellement, la version Linux ne se met pas à jour automatiquement, vous devrez donc répéter ces étapes pour effectuer la mise à niveau vers les versions futures.
J'ai essayé d'utiliser Webupd8 PPA mais cela ne fonctionne pas pour moi.
TL; DR Si vous ne souhaitez pas utiliser le PPA , vous pouvez utiliser un script pour télécharger et installer automatiquement via cron.
Créer un nouveau fichier atom-auto-update
Sudo nano /usr/local/bin/atom-auto-update
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
Sauvegarder le fichier et le rendre exécutable
Sudo chmod +x /usr/local/bin/atom-auto-update
Testez le script
Sudo atom-auto-update
Créer un cronjob pour le script
Sudo crontab -e
Ajouter cette ligne
par exemple: à 10 heures chaque semaine
0 10 * * 1 /usr/local/bin/atom-auto-update
par exemple: à 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 avec les dernières informations de 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
… 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
wget -q $( … ) -O /tmp/atom-AMD64.deb
Télécharger le fichier DEB
dpkg -i /tmp/atom-AMD64.deb
Installer le fichier DEB
A.B La réponse 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
Comme la réponse précédente avec modification mineure, pour permettre la mise à jour au démarrage, voici la procédure
Créer un fichier en exécutant la commande:
Sudo nano /usr/local/bin/atom-update
puis tapez le script ci-dessous (utilisez un éditeur de texte tel que "gedit" ou "mousepad" au lieu de "nano", ce qui est plus pratique), puis enregistrez-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
Pour rendre le fichier exécutable:
Sudo chmod +x /usr/local/bin/atom-update
Vous pouvez maintenant mettre à jour manuellement Atom en tapant la commande suivante:
Sudo atom-update
Connectez-vous à votre racine, puis ajoutez la ligne ci-dessous à /etc/rc.local
(Sudo nano /etc/rc.local
) juste avant la commande exit 0
:
/usr/local/bin/atom-update
Cela laissera le script de mise à jour atom s'exécuter chaque fois que vous allumez votre PC.
Pour vérifier que le script a bien fonctionné au démarrage, redémarrez votre PC et ouvrez le terminal, puis tapez:
cat /var/log/syslog | grep 'atom.*'
Vous verrez le message du journal en conséquence.
Eh bien, une autre version plus élégante prenant en charge la branche bêta, si le script est lancé avec l’argument bêta: $ 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
En me basant sur la réponse de A.B, j'ai ajouté une vérification de 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 script/usr/local/bin/atom-auto-update mentionné dans la réponse de A.B. Les autres étapes de la réponse sont les mêmes.
L'installation de Atom en un tournemain garantira que vous disposerez toujours de la dernière version:
Sudo snap install atom --classic
Pour une approche moins spécifique à Ubuntu, j’ai écrit un petit paquetage atom qui vérifie les nouvelles versions au démarrage (ou vous pouvez le vérifier manuellement à l’aide d’une commande pratique dans Atom).
Il est indépendant de la plate-forme (il fonctionne donc sur toutes les distributions Linux, Windows, etc ...).
Vous pouvez configurer quelques éléments tels que surveiller uniquement le canal stable ou la version bêta, avoir des notifications, quel type, et si elles doivent être révocables, etc.).
Cela ne () pas (au moins pour le moment!) Met automatiquement à jour le paquet. Je pourrais ajouter cette fonctionnalité à l’avenir si elle suscitait suffisamment d’intérêt.
Vos commentaires sont les bienvenus, mieux que des billets sur github.
J'ai écrit un script Python pouvant être utilisé pour mettre à jour le paquet DEB 64 bits à partir de GitHub. Vous pouvez enregistrer le contenu suivant sous update-atom
, par exemple dans /etc/cron.hourly
ou /etc/cron.daily
:
#!/usr/bin/env python
import os
import requests
def msg(text):
"""Give message to user."""
os.system('notify-send "Atom updater" "{}"'.format(text))
def current():
"""Get current version."""
f = os.popen("apt show atom 2>/dev/null | grep Ver")
return f.read().split(' ')[1].strip()
def latest():
"""Get latest version."""
upd_url = 'https://github.com/atom/atom/releases/latest'
final = requests.get(upd_url).url
return final.split('tag/v')[1]
def compare(cv, lv):
"""Compare versions."""
return lv.split('.') > cv.split('.')
def upgrade(version):
"""Perform upgrade."""
tempfile = '/tmp/atom.deb'
url = (
'https://github.com/atom/atom/releases/download/'
'v{}/atom-AMD64.deb'.format(version)
)
code = os.system(
'rm -f {} && '
'wget "{}" -O {} && '
'dpkg -i {}'.format(tempfile, url, tempfile, tempfile)
)
return code == 0
if __== '__main__':
cv = current()
try:
lv = latest()
except requests.exceptions.ConnectionError:
print 'No network'
exit(0)
print 'Current version', cv
print 'Latest version', lv
result = compare(cv, lv)
if result:
print 'A new version is available!'
msg('Updating Atom to version {}...'.format(lv))
if upgrade(lv):
msg('Update completed.')
else:
msg('Problem during update.')
else:
print 'Atom is updated.'
Si vous construisez à partir de sources, je le fais via un petit script:
cd "/home/YOUR_USER/gitmisc/atom/"
git pull
cd script/
Sudo ./build --install
Encore un autre script personnalisé (Python
) pour aider à la mise à jour de l’atome: https://Gist.github.com/DusanMadar/8f094ef647a0ad54cff1
Quelques mods du script python par Andrea Lazzarotto pour supprimer la dépendance sur notify-send dont les autres variantes d'Ubuntu ne disposent pas par défaut et gérer le cas où il n'y en a pas. t déjà une copie de atom installée. En outre, il convient de noter que vous aurez également besoin d'autres dépendances:
Sudo apt-get installe les requêtes python git gvfs-bin
Je devais aussi exécuter le suivant pour obtenir d'autres sous-dépendances ...
Sudo apt-get -f install
#!/usr/bin/env python
import os
import requests
def msg(text):
"""Give message to user."""
os.system('notify-send "Atom updater" "{}"'.format(text)
+ ' 2>/dev/null '
+'|| echo "{}"'.format(text))
def current():
"""Get current version."""
f = os.popen("apt show atom 2>/dev/null | grep Ver")
result = f.read()
if result:
return result.split(' ')[1].strip()
return "0.0"
def latest():
"""Get latest version."""
upd_url = 'https://github.com/atom/atom/releases/latest'
final = requests.get(upd_url).url
return final.split('tag/v')[1]
def compare(cv, lv):
"""Compare versions."""
return lv.split('.') > cv.split('.')
def upgrade(version):
"""Perform upgrade."""
tempfile = '/tmp/atom.deb'
url = (
'https://github.com/atom/atom/releases/download/'
'v{}/atom-AMD64.deb'.format(version)
)
code = os.system(
'rm -f {} && '
'wget "{}" -O {} && '
'dpkg -i {}'.format(tempfile, url, tempfile, tempfile)
)
return code == 0
if __== '__main__':
cv = current()
try:
lv = latest()
except requests.exceptions.ConnectionError:
print 'No network'
exit(0)
print 'Current version', cv
print 'Latest version', lv
result = compare(cv, lv)
if result:
print 'A new version is available!'
msg('Updating Atom to version {}...'.format(lv))
if upgrade(lv):
msg('Update completed.')
else:
msg('Problem during update.')
else:
msg('Atom is updated.')
6 mai 2016
Andy Richardson fait atom-updater-linux . C'est le paquet atom, vous pouvez l'avoir sur votre atom en lançant:
apm install atom-updater-linux
consulter le référentiel pour plus d'informations