How to automatically update Atom editor?
Solution 1
TL;DR If you do not want to use the PPA, you can use a script to download and automatically install via cron.
-
Create a new file
atom-auto-update
sudo nano /usr/local/bin/atom-auto-update
-
Add the following lines
#!/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
-
Save the file and make it executable
sudo chmod +x /usr/local/bin/atom-auto-update
-
Test the script
sudo atom-auto-update
-
Create a cronjob for the script
sudo crontab -e
-
Add this line
e.g.: at 10 am every week
0 10 * * 1 /usr/local/bin/atom-auto-update
e.g.: at 10 am every day
0 10 * * * /usr/local/bin/atom-auto-update
Explanation
-
wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
Download the site with the latest version information
-
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 …
Extract the download link
-
wget -q $( … ) -O /tmp/atom-amd64.deb
Download the DEB file
-
-
dpkg -i /tmp/atom-amd64.deb
Install the DEB file
Solution 2
A.B's Answer is a nice solution! I added show progress bar option in the bash code to notify progress:
#!/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
Solution 3
As the previous answer with minor modification, to let updating on start-up, here is the procedure
-
Create file by running the command:
sudo nano /usr/local/bin/atom-update
then type the below script (use text-editor like "gedit" or "mousepad" instead of "nano" is more convenient) and then save it.
#!/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
-
To make the file executable:
sudo chmod +x /usr/local/bin/atom-update
-
Now you could manually update Atom by typing the command:
sudo atom-update
-
Login to your root, and then add the below row to
/etc/rc.local
(sudo nano /etc/rc.local
) just beforeexit 0
command:/usr/local/bin/atom-update
This will let the atom update script execute every time you turn on your PC.
-
To check that the script has run properly on start up, restart your PC and open the terminal then type:
cat /var/log/syslog | grep 'atom.*'
You will see the log message accordingly.
Solution 4
Well, another more elegant version with support of beta branch, if script launched with beta argument: $ 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
Solution 5
Building on A.B's answer, I've added version checking to avoid unnecessary download/install:
#!/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: I should clarify that this would replace the content of the /usr/local/bin/atom-auto-update script which A.B's answer mentions. The other steps of the answer are the same.
Related videos on Youtube
Igor V.
Updated on September 18, 2022Comments
-
Igor V. over 1 year
Automatic update of Atom feature is not yet supported for Ubuntu. From their GitHub repository:
Currently only a 64-bit version is available.
Download atom-amd64.deb from the Atom releases page. Run sudo dpkg --install atom-amd64.deb on the downloaded package. Launch Atom using the installed atom command. The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.
I tried using Webupd8 PPA but it doesn't work for me.
-
A.B. almost 9 yearsWhat is the problem with the PPA?
-
Igor V. almost 9 years@A.B. I think is ok now, didn't get the time to test it and I am not using atom for some time now, but back then PPA didn't updated my version.
-
A.B. almost 9 yearsI probably should not answer old questions. :\
-
Igor V. almost 9 yearsYour answer is great and it would help me for similar problems. :)
-
-
Fabby almost 9 yearsAn edit and an upvote! ;-)
-
karel over 7 yearsSuggestion for changing your GitHub page: under the Usage heading replace
The package check for new version of Atom at launch
withThe package checks for a new version of Atom at launch
Under the Why "geiger"? heading replaceoutadet Atom
withoutdated Atom
-
mac over 7 years
-
Rachid O over 7 yearsawk: line 1: syntax error at or near , wget : URL manquante Utilisation : wget [OPTION]... [URL]...
-
becko over 7 yearsIf I update this way, do I have to resintall the packages?
-
Dean Rather over 7 yearsThis also gave me a syntax error where you try extract the URL from the HTML. They probably changed the HTML since then. This worked for me (not complete):
cat /tmp/latest | grep '.deb' | grep 'href=' | cut -d '"' -f 2
-
SallyRothroat over 7 yearsIt's not working anymore. Can you update it please?
-
Felipe Elia almost 7 yearsFor those facing the awk syntax error, here is my third row:
wget https://github.com$(cat /tmp/latest | grep -o -E 'href=".*atom-amd64.deb' | cut -d'"' -f2) -O /tmp/atom-amd64.deb
-
Ramon Suarez over 6 yearsIs there a difference in performance or usage between Atom installed via snap or apt? I don't really understand how to choose one or the other in general. Thanks.
-
Jorge Castro over 6 yearsI've been using it like this for a long time with no issues, I prefer it to their debs because it autoupdates instead of reminding me to update all the time.
-
Pablo Bianchi about 6 yearsI'm confuse if this really upgrade my Atom, I get Atom has been update from 1.23.3 to 1.19.7. If I download current latest from Atom.io and
sudo dpkg -i atom-amd64.deb
then I get `Unpacking atom (1.23.3) over (1.19.7). -
scones about 4 yearsoutput in cronjobs is a bad thing. your administrator will get spam from that