Daten|teiler
Kopieren als Kulturtechnik

Atom und openSUSE

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

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

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

In der Terminalausgabe sind vor allem „Application ID“ und „Remotes“ wichtig, um das Flatpak mit Atom zu installieren:

$ 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

Wenn man das Flatpak updaten möchte, gibt man den folgenden Befehl ein:

$ flatpak update <Name des Flatpaks>

Und möchte man es wieder loswerden, benutzt man „uninstall“:

$ 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

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

Anschließend kann man gleich mit Snaps loslegen. Wenn man angemeldet ist, installiert man Atom mit diesem Befehl:

$ 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:

$ sudo snap remove atom

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.

Geschrieben in Gnu/Linux, OpenSuse