init at home
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user