Atom und openSUSE
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.