web-dev-qa-db-de.com

Wie bekomme ich die Liste aller installierten Anwendungen mit GUI?

Ich möchte eine Liste aller installierten Anwendungen, die eine GUI haben. Um es klar auszudrücken, mindestens alle Anwendungen, die in Anwendungen anzeigen aufgelistet sind.

Ich habe verschiedene Befehle wie apt list --installed, dpkg -l, find '*.desktop' ausprobiert, um eine Liste aller installierten Anwendungen zu erhalten, bei denen einige Anwendungen fehlten (wie Android Studio , b1freearchiver, pyCharm, etc .)

Wäre es nicht möglich, den Ordner oder die Datei zu finden, der bzw. die vom Menü Show Applications verwendet wird, um alle darin aufgeführten Anwendungen abzurufen.

Ich verwende Ubuntu 18.04 Desktop.

3
Sathish Kanna

Versuchen Sie, nach allen .desktop-Dateien zu suchen. Gnomes Entwickler-Website nennt sie den "registrierten Satz von Anwendungen, die Benutzer ausführen können" und sie sind fast immer GUI-Programme.

Diese Antwort ( Wie finde ich * .desktop-Dateien? ) besagt, dass Sie mit überall nach .desktop-Dateien suchen können

find / -name '*.desktop'

Oder sie sind wahrscheinlich nur in /usr/share/applications/ und ~/.local/share/applications enthalten, daher sollte es ausreichen, nur in diesen zu suchen :

find /usr/share/applications ~/.local/share/applications -name '*.desktop'

Wenn Sie speziell Terminalprogramme ausschließen möchten (auch wenn sie eine Terminal-GUI wie htop haben), können Sie diese Befehle an eine Suche oben anhängen:

...  -print0 |xargs -0 grep -i -l "Terminal=False"
2
Xen2050

Als Ergänzung zu @ Xen2050-Antwort können Sie die genauen Paketnamen der Deb-Pakete (damit sie APT bekannt sind) mit *.desktop -Dateien mit diesem Einzeiler bestimmen:

dpkg --search '*.desktop' | awk '{print $1}' | sed "s/://" | sort --unique

Im obigen Befehl:

  • dpkg --search '*.desktop' sucht nach Paketen mit *.desktop Dateien;
  • | leitet von der Ausgabe des vorherigen Befehls zur Eingabe des nächsten Befehls um;
  • awk '{print $1}' gibt die erste Spalte des Suchergebnisses aus (normalerweise in der Form plank: /usr/share/applications/plank.desktop - so erhalten Sie plank:);
  • sed "s/://" entfernt unnötigen : aus dem Paketnamen (Sie erhalten plank hier);
  • sort --unique sortiert die Ergebnisse und entfernt Duplikate daraus.

Auf meinem Ubuntu 16.04.5 LTS werden ungefähr 347 eindeutige Paketnamen zurückgegeben.


Wenn Sie eine Software im Basisordner installiert haben, können Sie den folgenden Befehl verwenden

find ~ -name '*.desktop'

oder genauer

find ~/.local/share/applications/ '*.desktop'

um ihre *.desktop Dateien zu finden.

1
N0rbert

Im Allgemeinen ist das schwer zu bestimmen. Die anderen Antworten beziehen sich nicht darauf, dass Befehlszeilen-Apps möglicherweise auch .desktop-Dateien enthalten oder GUI-Apps möglicherweise keine .desktop-Dateien enthalten. Desktop-Datei. Außerdem gibt es keine Garantie, dass eine App, auf die in der .desktop-Datei verwiesen wird, noch auf dem System vorhanden ist (Sie müssen sie ausführen, um den vorhandenen Pfad zu kennen oder Exec = line zu überprüfen). Daher ist es ein schlechtes Kriterium.

Was jedoch getan werden kann, ist eine bessere Frage zu stellen. Welche Apps hängen von der GUI ab? Das kann mit apt-cache rdepends 'package or lib' gefunden werden. Beispielsweise zeigt apt-cache rdepends libappindicator Pakete an, die diese Bibliothek als Abhängigkeit haben und wahrscheinlich ein solches Applet bereitstellen.

Um fair zu sein, kann eine Terminal-App auch mit der GUI verbunden sein, ohne tatsächlich eine GUI-Schnittstelle zu haben. Wenn Sie Apps mit GUI-Front-End finden möchten, suchen Sie nach Apps, die von Gtk- oder Qt-Bibliotheken abhängen

Natürlich hängt es auch davon ab, ob der Paketbetreuer die Abhängigkeitsbeschreibung für sein Paket korrekt angegeben hat. Für Standard-Ubuntu-Repositorys ist das in Ordnung. Für externe PPA hängt das von den Entwicklern und Betreuern ab.

0