Cover Image

JetBrains bietet seit kurzem Snaps für die Installation der eigenen Produkte an. Da ich Snaps immer mal wieder ausprobieren wollten, habe ich das heute mal getan.

Snaps sind ein Art Container für Anwendungen. Auf dem Mac kennt man das bereits länger. Dort gibt es .app Dateien die ein ganzes Verzeichnissystem verstecken. Die Idee ist, dass man schnell Anwendungen (meist mit graphischer Oberfläche) unter Linux installieren kann, ohne zu stark auf die Maintainer von anderen Paketen oder Libs Rücksicht nehmen zu müssen. Das hat Vor- und auch Nachteile.

Eine Beschreibung von Snaps findet ihr auf der Projekt-Webseite https://snapcraft.io. Dort wird einem suggeriert, dass so gut wie alle Linux-Distributionen hinter diesem Konzept stehen. In Wirklichkeit stammen Snaps von Canonical, dem Unternehmen hinter Ubuntu. Fedora setzt hier eher auf Flatpak. Flatpak hat ein anderes Konzept und arbeitet mit Runtimes. Das ist aber ein anderes Thema.

Zurück zur Snap Installation unter Fedora 27. Die Installation des Snapd Services, der dann die Snaps verwaltet, kann man sehr einfach durchführen.

Auf der Snap-Webseite liest man folgendes:

sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap

Das läuft soweit auch durch. Die Installation stammt allerdings auch aus dem Fedora-Repository.

Danach kann man sich mit einem Ubuntu-Konto einloggen. Ubuntu verspricht dann einige Vorteile. Die Rede ist von privaten Snaps. Hier geht es aber eher um einen Snap-Store in dem Anwendungen verkauft werden können.

Zum Testen habe ich PhpStorm installiert. Das geht auch noch einfach und ist auch bei Jetbrains beschrieben.

sudo snap install phpstorm --classic

Die Installation läuft auch noch ohne mucken durch. Jetzt muss aber noch was schiefgehen…

Wie startet man nun so ein Snap? Ich suche nach der App in meiner Gnome-Anwendungsliste. Hier ist nichts zu sehen. Wo kann die Anwendung nur sein?

Ich recherchiere ein wenig. Scheinbar ist das bei Fedora nicht unterstützt. Also versuche ich erst mal die Anwendung manuell über die Konsole zu starten. Die Anwendung wird aber nicht gefunden…. Was jetzt?

Ich finde die Anwendung unter /snap/bin/phpstorm. Das ist ein Symlink der auf /usr/bin/snap zeigt. Ich versuche phpstorm darüber zu starten.

Die Anwedung startet nicht und quittiert den Dienst mit:

snap execv failed: No such file or directory

Was jetzt tun? Ich beschließe das ganze mit strace zu überwachen.

Ein strace phpstorm ergibt, dass das Programm snap-exec nicht gefunden wird. Es wird unter “/usr/lib/snapd” gesucht. Bei uns liegt das Programm allerdings unter /usr/libexec/snapd.

Also erstellen wir einen Symlink:

sudo ln -s /usr/libexec/snapd /usr/lib/snapd

Danach kann Phpstorm über “/snap/bin/phpstorm” erfolgreich gestartet werden.

Wer es jetzt bequemer für die Konsole haben möchte, kann noch /snap/bin in seine $PATH  Variable aufnehmen.

Wer PhpStorm in seinem Startmenü unter Gnome habe möchte, der kann die Datei .local/share/applications/phpstorm.desktop mit folgendem Inhalt anlegen.

[Desktop Entry]
Version=1.0
Type=Application
Name=PhpStorm
Icon=/snap/phpstorm/current/bin/phpstorm.png
Exec=/snap/bin/phpstorm %f
Comment=The Drive to Develop
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-phpstorm

Habt ihr eine einfachere Möglichkeit gefunden? Dann hinterlasst hier einfach einen Kommentar.