164 lines
5.8 KiB
Markdown
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. |