21. März 2018 von Christian Imhorst
Der Editor Atom ist ein plattformübergreifender Open Source-Editor auf der Basis von Electron. Der Editor wird von GitHub entwickelt und man hat die Möglichkeit, ihn fast vollständig an seine eigenen Bedürfnisse anzupassen. Für Atom existieren eine große Anzahl an Add-Ons, die über den integrierten Paketmanager installiert werden können.
Persönlich gefällt mir Atom besser, als der recht ähnliche Editor Visual Studio Code von Microsoft. Die Features sind bei beiden recht ähnlich, es gibt bei beiden Sprachunterstützung für .NET-Sprachen und für die PowerShell, was ich beides beruflich benötige. Mit dem Update auf Version 1.25 soll Atom auch schneller und responsiver geworden sein.
Ein Nachteil von Atom gegenüber VS Code ist allerdings, dass man Atom unter Linux nicht automatisch aktualisieren kann, während VS Code ein Repository anbietet. Stand heute muss man für jede neue Version das Paket von der Webseite des Projekts herunterladen und installieren. Im Wiki von Fedora wird allerdings eine schöne Möglichkeit gezeigt, wie man den Editor auch ohne Repository über die Kommandozeile aktuell halten kann. Ich habe die Methode für openSUSE angepasst und daraus das Skript CheckAtomUpdates
gestrickt. Wobei das so ähnlich auch für andere Linux-Distros funktionieren wird:
#!/bin/bash
ATOM_INSTALLED_VERSION=$(rpm -qi atom | grep "Version" | cut -d ':' -f 2 | cut -d ' ' -f 2)
ATOM_LATEST_VERSION=$(curl -sL "https://api.github.com/repos/atom/atom/releases/latest" | grep -E "https.*atom-amd64.tar.gz" | cut -d '"' -f 4 | cut -d '/' -f 8 | sed 's/v//g')
if [[ $ATOM_INSTALLED_VERSION < $ATOM_LATEST_VERSION ]]; then
while true; do
read -p "Installed version is $ATOM_INSTALLED_VERSION. Do you wish to update to Atom $ATOM_LATEST_VERSION (y/n)? " yn
case $yn in
[Yy]* ) sudo zypper --non-interactive --no-gpg-check in -y https://github.com/atom/atom/releases/download/v${ATOM_LATEST_VERSION}/atom.x86_64.rpm; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
else
echo "Latest version of Atom $ATOM_LATEST_VERSION is already installed."
fi |
#!/bin/bash
ATOM_INSTALLED_VERSION=$(rpm -qi atom | grep "Version" | cut -d ':' -f 2 | cut -d ' ' -f 2)
ATOM_LATEST_VERSION=$(curl -sL "https://api.github.com/repos/atom/atom/releases/latest" | grep -E "https.*atom-amd64.tar.gz" | cut -d '"' -f 4 | cut -d '/' -f 8 | sed 's/v//g')
if [[ $ATOM_INSTALLED_VERSION < $ATOM_LATEST_VERSION ]]; then
while true; do
read -p "Installed version is $ATOM_INSTALLED_VERSION. Do you wish to update to Atom $ATOM_LATEST_VERSION (y/n)? " yn
case $yn in
[Yy]* ) sudo zypper --non-interactive --no-gpg-check in -y https://github.com/atom/atom/releases/download/v${ATOM_LATEST_VERSION}/atom.x86_64.rpm; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
else
echo "Latest version of Atom $ATOM_LATEST_VERSION is already installed."
fi
Da das Paket von Atom nicht signiert ist, habe ich den GPG-Check bei der Installation ausgeschaltet. Ansonsten hätte sie nicht interaktiv funktioniert. Solange bis es eines Tages ein Repository für Atom gibt oder ein Installationspaket in den Repos der eigenen Distribution auftaucht, kann das Skript vielleicht ganz brauchbar sein.
Ein Flatpak mit Atom
Eine Alternative zur Installation des RPM-Pakets ist ein Flatpak, mit dem Programme konfliktfrei zur „normalen“ Paketverwaltung installiert werden sollen, indem alle benötigten Binärdateien, Bibliotheken, Konfigurations- und sonstige Dateien in ein extra Verzeichnis kopiert werden. Flatpaks können ohne jede weitere Anpassung auf allen Linux-Distributionen laufen, auf denen Flatpak installiert ist.
Unter openSUSE ist Flatpak schnell installiert. Man muss anschließend noch ein Repository hinzufügen und updaten:
$ sudo zypper install flatpak
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak update |
$ sudo zypper install flatpak
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak update
Wenn das erledigt ist, sucht man nach dem Atom-Editor:
$ flatpak search atom
Application ID Version Branch Remotes Description
io.atom.Atom 1.25.0 stable flathub A hackable text editor for the 21st Century
net.sourceforge.atanks stable flathub Turn-based artillery strategy game
com.github.rssguard stable flathub Simple (yet powerful) feed reader |
$ flatpak search atom
Application ID Version Branch Remotes Description
io.atom.Atom 1.25.0 stable flathub A hackable text editor for the 21st Century
net.sourceforge.atanks stable flathub Turn-based artillery strategy game
com.github.rssguard stable flathub Simple (yet powerful) feed reader
In der Terminalausgabe sind vor allem „Application ID“ und „Remotes“ wichtig, um das Flatpak mit Atom zu installieren:
$ flatpak install flathub io.atom.Atom |
$ flatpak install flathub io.atom.Atom
Eine Auflistung aller Flatpaks liefert der Paramater „list“. Mit „run“ und anschließendem Paketnamen wird der Editor gestartet:
$ flatpak list
Ref Options
io.atom.Atom/x86_64/stable system,current
org.freedesktop.Platform.VAAPI.Intel/x86_64/1.6 system,runtime
org.freedesktop.Platform.ffmpeg/x86_64/1.6 system,runtime
org.freedesktop.Sdk/x86_64/1.6 system,runtime
$ flatpak run io.atom.Atom |
$ flatpak list
Ref Options
io.atom.Atom/x86_64/stable system,current
org.freedesktop.Platform.VAAPI.Intel/x86_64/1.6 system,runtime
org.freedesktop.Platform.ffmpeg/x86_64/1.6 system,runtime
org.freedesktop.Sdk/x86_64/1.6 system,runtime
$ flatpak run io.atom.Atom
Wenn man das Flatpak updaten möchte, gibt man den folgenden Befehl ein:
$ flatpak update <Name des Flatpaks> |
$ flatpak update <Name des Flatpaks>
Und möchte man es wieder loswerden, benutzt man „uninstall“:
$ flatpak uninstall <Name des Flatpaks> |
$ flatpak uninstall <Name des Flatpaks>
Damit man ein Desktop-Icon hat, benötigt man die entsprechende Desktop-Datei. Nach dem Ab- und wieder Anmelden des eigenen Benutzers, sollte der Pfad zu der Datei /var/lib/flatpak/exports/share
zur Umgebungsvariablen $XDG_DATA_DIRS
gehören. Das sorgt dann dafür, dass die Desktop-Datei io.atom.Atom.desktop
im Unterordner „applications“ von der Desktop-Umgebung gefunden wird. Sollte das nicht der Fall sein, kann man die Datei Atom.desktop
, entweder im Verzeichnis /usr/share/applications
, dann ist es für alle sichtbar, oder im Verzeichnis ~/.local/share/applications
, wenn das Icon nur der eigene Benutzer sehen soll, anlegen. Der Inhalt der Datei sieht dann etwa so aus:
[Desktop Entry]
Name=Atom
Comment=A hackable text editor for the 21st Century.
GenericName=Text Editor
Exec=atom %F
Icon=io.atom.Atom
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;TextEditor;Development;
MimeType=text/plain;
X-Desktop-File-Install-Version=0.23 |
[Desktop Entry]
Name=Atom
Comment=A hackable text editor for the 21st Century.
GenericName=Text Editor
Exec=atom %F
Icon=io.atom.Atom
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;TextEditor;Development;
MimeType=text/plain;
X-Desktop-File-Install-Version=0.23
Mehr Infos zu Flatpak findet man auch im sehr gut sortiertem Wiki von Arch Linux.
Ubuntu Snaps unter openSUSE
Als weitere Alternative hat man auch die Möglichkeit, ein Snap von Ubuntu mit Atom zu installieren. Snaps funktionieren ähnlich wie Flatpaks und gibt es auch für openSUSE, z.B. für Tumbleweed:
$ sudo zypper addrepo http://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/ snappy
$ sudo zypper install snapd
$ sudo systemctl enable --now snapd.socket |
$ sudo zypper addrepo http://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/ snappy
$ sudo zypper install snapd
$ sudo systemctl enable --now snapd.socket
Anschließend kann man gleich mit Snaps loslegen. Wenn man angemeldet ist, installiert man Atom mit diesem Befehl:
$ sudo snap install --classic atom |
$ sudo snap install --classic atom
Mit dem Befehl sudo snap refresh
guckt man, ob alle Snaps aktuell sind. Stand heute ist aber noch Atom 1.24.0 das aktuellste Snap-Paket. Wenn man das Programm wieder los werden möchte reicht ein:
Für welche der drei Methoden man sich entscheiden möchte, hängt vermutlich stark von den eigenen Vorlieben ab. Jede von ihnen hat ihre Vor- und Nachteile, aber alle liefern einen Atom als Editor.