Ich benutze Arch Linux.
Gibt es eine Möglichkeit, optionale Abhängigkeiten aller installierten Pakete aufzulisten? Und wenn ja, kann ich diese Liste filtern, um nur die fehlenden (nicht installierten) Pakete anzuzeigen?
arch-linux
pacman
vonPetrushev
quelle
quelle
pacman -Qi | grep "Optional Deps" | grep -v None | grep -v installed
Antworten:
Sie können expac verwenden , um die
pacman
Datenbank abzufragen .So etwas wie:
druckt eine Liste aller auf Ihrem Rechner installierten Pakete und die
optdepends
für jedes einzelne (%O
) 1 aufgerufene Datei ausoptdeps
. Sie können dies dann anhand einer Liste installierter optdepends-Pakete sortieren.Siehe
man expac
die vollständige Liste der Optionen.1. Das ist ein Großbuchstabe O, keine Null. Weil wir keine Schrift haben können, die zwischen den beiden unterscheidet ...
quelle
Es gibt ein nettes Dienstprogramm im AUR-Repository (aur / pacdep).
pacdep hat viele Möglichkeiten - nur ein Beispiel - finde optionale Pakete für "thunar-archive-plugin" heraus:
Die Ausgabe oben bedeutet, dass keines der optionalen Pakete installiert ist. Nach der Installation von "xarchiver" sieht die Ausgabe so aus
Ich habe (den ersten Teil) dieser Antwort auf
http://mywaytoarch.tumblr.com/post/34979742718/easily-list-package-dependencies gefunden
quelle
Dies ist nicht gerade effizient, wird aber das finden, was Sie wollen (in FARBE!):
quelle
||
statt&&
nach demgrep
, und dann Klammern um den Rest der Zeile?pacman -Qi xmms2 | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1 | cut -c19- | cut -d: -f1
Obwohl ich feststellen musste, dass @ DarkHearts Lösung nicht wirklich funktioniert, hat es mich dazu inspiriert, eine funktionierende Lösung zu entwickeln. (allerdings keine Farben)
Ich verwende package-query , ein ähnliches Tool anstelle von expac, das von @jasonwryan vorgeschlagen wurde, weil ich es bereits installiert habe (es ist eine Abhängigkeit von yaourt). Es sollte trivial sein, dies zu ändern, um stattdessen expac zu verwenden.
Die Auflistung aller optionalen Abhängigkeiten erfolgt meist durch den Aufruf der Paketabfrage. Die erste for-Schleife entfernt die Erklärungen, sodass nur die Paketnamen für die optionalen Abhängigkeiten übrig bleiben. Die zweite for-Schleife entfernt die bereits installierten Abhängigkeiten in der ersten Zeile, bevor die Ergebnisse in der zweiten Zeile ausgegeben werden.
quelle
Dies sollte den Trick machen:
Erste Eingabe, um
comm
alle optionalen Abhängigkeiten aufzulisten, zweite Eingabe, um alle installierten Pakete und ihre Attribute für die Bereitstellung aufzulisten. Beide Listen sind sortiert und enthalten jedes Element nur einmal aufgrund vonsort -u
. Es werden dann nur Zeilen angezeigt, die in der ersten, aber nicht in der zweiten Liste enthalten sind.(bearbeitet, um @ Archemars Vorschlag aufzunehmen)
quelle
Manchmal muss man rückwärts arbeiten ... erst alle nicht optionalen Abhängigkeiten finden, dann Querverweis mit vollständiger Liste, dann uniq verwenden. Dadurch wird eine Liste der installierten optionalen Abhängigkeiten generiert.
Finde alle installiert
Finde alle nicht optionalen:
Eindeutige Einträge müssen daher optional sein:
Liste der fehlenden optionalen abhängig mit Beschreibungen generieren, nicht hübsch, aber es funktioniert.
quelle
Ich habe es aber nur in GNU sed versucht
das hat funktioniert (benutze sort / uniq wie du willst).
quelle