Files
it-know-how/Linux/AppImage Programme einrichten.md
T

164 lines
5.8 KiB
Markdown

Unten eine vollständige, schrittweise Anleitung (auf Deutsch), wie du eine AppImage unter /opt ablegst, ins Startmenü einbindest und optional ein Icon extrahierst. Ich gebe dir Beispielbefehle — ersetze die Platzhalter durch den echten Dateinamen/deine App-Namen.
Voraussetzungen
- Du brauchst sudo-Rechte.
- AppImage-Datei (z. B. ExampleApp.AppImage) ist im Downloads-Ordner.
Schritt 1 — AppImage ausführbar machen
Öffne ein Terminal und mache die Datei ausführbar:
```
cd ~/Downloads
chmod +x ExampleApp.AppImage
```
Schritt 2 — AppImage nach /opt verschieben
Erstelle ein Unterverzeichnis unter /opt (z. B. /opt/exampleapp) und verschiebe die AppImage dort hin:
```
sudo mkdir -p /opt/exampleapp
sudo mv ExampleApp.AppImage /opt/exampleapp/
sudo chown -R root:root /opt/exampleapp
```
Optional: Um den Namen konsistent zu halten, kannst du die Datei umbenennen:
```
sudo mv /opt/exampleapp/ExampleApp.AppImage /opt/exampleapp/exampleapp.AppImage
```
Schritt 3 — Einfachen Startbefehl anlegen (Symlink oder Wrapper)
Damit die App systemweit mit kurzem Namen startet, lege einen Symlink oder ein kleines Wrapper-Skript in /usr/local/bin an.
Variante A — Symlink:
```
sudo ln -s /opt/exampleapp/exampleapp.AppImage /usr/local/bin/exampleapp
sudo chmod +x /usr/local/bin/exampleapp
```
Variante B — Wrapper-Skript (empfohlen, falls Argumente weitergeleitet werden sollen):
```
sudo tee /usr/local/bin/exampleapp > /dev/null <<'EOF'
#!/bin/sh
exec /opt/exampleapp/exampleapp.AppImage "$@"
EOF
sudo chmod +x /usr/local/bin/exampleapp
```
Schritt 4 — Icon aus dem AppImage extrahieren (optional, aber empfohlen)
Viele AppImages haben ein eingebettetes Icon (.DirIcon) oder eine .png-Datei. So extrahierst du es:
```
cd /tmp
/opt/exampleapp/exampleapp.AppImage --appimage-extract
# die extrahierten Dateien liegen jetzt in /tmp/squashfs-root
```
Suche das Icon:
```
ls squashfs-root | grep -i DirIcon || ls squashfs-root | grep -i png
```
Beispiel: wenn squashfs-root/.DirIcon vorhanden ist, kopiere es als PNG in die Icon-Hierarchie:
```
sudo mkdir -p /usr/share/icons/hicolor/256x256/apps
sudo cp squashfs-root/.DirIcon /usr/share/icons/hicolor/256x256/apps/exampleapp.png
sudo chmod 644 /usr/share/icons/hicolor/256x256/apps/exampleapp.png
```
(Optional) Icon-Cache aktualisieren:
```
sudo gtk-update-icon-cache /usr/share/icons/hicolor
```
Aufräumen:
```
rm -rf /tmp/squashfs-root
```
Hinweis: Wenn du die App nur für deinen Benutzer installierst, kopiere das Icon nach ~/.local/share/icons/hicolor/256x256/apps/ statt /usr/share/...
Schritt 5 — .desktop-Datei anlegen (Startmenü-Eintrag)
Siehe auch hier: [[Linux .desktop Dateien]]
Systemweit (für alle Benutzer):
```
sudo tee /usr/share/applications/exampleapp.desktop > /dev/null <<'EOF'
[Desktop Entry]
Name=ExampleApp
GenericName=Example Application
Comment=Beschreibung der Anwendung
Exec=/usr/local/bin/exampleapp %U
Icon=exampleapp
Terminal=false
Type=Application
Categories=Utility;Application;
StartupWMClass=ExampleApp
EOF
```
Alternativ für nur deinen Benutzer:
```
mkdir -p ~/.local/share/applications
tee ~/.local/share/applications/exampleapp.desktop > /dev/null <<'EOF'
[Desktop Entry]
Name=ExampleApp
GenericName=Example Application
Comment=Beschreibung der Anwendung
Exec=/usr/local/bin/exampleapp %U
Icon=/home/deinuser/.local/share/icons/hicolor/256x256/apps/exampleapp.png
Terminal=false
Type=Application
Categories=Utility;Application;
StartupWMClass=ExampleApp
EOF
```
Wichtige Felder:
- Exec: Pfad zur ausführbaren Datei oder zu deinem Symlink (/usr/local/bin/exampleapp). %U erlaubt URLs/Dateien als Argumente.
- Icon: entweder der einfache Icon-Name (ohne Endung), wenn du das Icon in /usr/share/icons/hicolor abgelegt hast, oder ein voller Pfad.
- Categories: für die Kategorisierung im Menü (z. B. Utility, Development, Office).
- Terminal=false, falls kein Terminal nötig.
Setze die richtigen Rechte:
```
sudo chmod 644 /usr/share/applications/exampleapp.desktop
# oder für user:
chmod 644 ~/.local/share/applications/exampleapp.desktop
```
Schritt 6 — Desktop-Datenbank aktualisieren (falls nötig)
Für Systemmenüs:
```
sudo update-desktop-database
```
Für GNOME/andere DEs: in der Regel reicht Aus- und Einloggen oder Neustart des Shells/Session.
Schritt 7 — Testen
- Öffne dein Startmenü / Activities und suche nach "ExampleApp".
- Alternativ im Terminal: `exampleapp` (oder `/opt/exampleapp/exampleapp.AppImage`).
Optionale Hinweise
- Automatische Updates: Manche AppImages unterstützen AppImageUpdate (z. B. mit zsync) oder du kannst AppImageLauncher verwenden, das AppImage-Integration & Updates verwaltet.
- Sicherheitsaspekt: AppImages laufen nicht automatisch in einem Sandbox; für zusätzliche Isolation kannst du firejail verwenden.
- Entfernen: Entferne /opt/exampleapp, den Symlink und die .desktop/Icons, um die App rückstandsfrei zu löschen.
Kurzbeispiel (kompakt)
Angenommen Datei heißt ExampleApp.AppImage in ~/Downloads und dein Benutzername ist user:
```
cd ~/Downloads
chmod +x ExampleApp.AppImage
sudo mkdir -p /opt/exampleapp
sudo mv ExampleApp.AppImage /opt/exampleapp/exampleapp.AppImage
sudo ln -s /opt/exampleapp/exampleapp.AppImage /usr/local/bin/exampleapp
# Icon extrahieren (falls vorhanden)
/opt/exampleapp/exampleapp.AppImage --appimage-extract
sudo cp squashfs-root/.DirIcon /usr/share/icons/hicolor/256x256/apps/exampleapp.png
rm -rf squashfs-root
# .desktop anlegen
sudo tee /usr/share/applications/exampleapp.desktop > /dev/null <<'EOF'
[Desktop Entry]
Name=ExampleApp
Exec=/usr/local/bin/exampleapp %U
Icon=exampleapp
Terminal=false
Type=Application
Categories=Utility;
EOF
sudo chmod 644 /usr/share/applications/exampleapp.desktop
sudo update-desktop-database
```
Wenn du willst, schreibe mir:
- Wie die AppImage-Datei heißt, und
- ob du die Installation systemweit (für alle Benutzer) oder nur für dich wünschst.
Dann passe ich die Befehle genau für deine App an.