Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] Anzahl installierter Pakete eleganter ermitteln?  (Read 1879 times)

Offline Geier0815

  • User
  • Posts: 586
[DE] Anzahl installierter Pakete eleganter ermitteln?
« on: 2017/11/30, 13:45:11 »
Moin Moin,

gibt es per dpkg oder apt eine Möglichkeit die Anzahl der installierten Pakete zu ermitteln?

Code: [Select]
dpkg -l | awk '{print $2}' | wc -lfunktioniert zwar, ist aber mMn nicht sonderlich elegant. Da wird es doch sicherlich eine Möglichkeit direkt aus apt oder dpkg heraus geben die ich nur übersehen habe.
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #1 on: 2017/11/30, 13:52:50 »
Wie wär's etwas kürzer mit.....

Code: [Select]
# apt-show-versions | wc -l

...wahlweise noch ein Alias basteln (in .bashrc).

Code: [Select]
lspkg='apt-show-versions | wc -l'

...dann spart man sich Tipparbeit ;-)

Offline whistler_mb

  • User
  • Posts: 198
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #2 on: 2017/11/30, 15:12:25 »
Auch wenn mich die Anzahl der installierten Pakete bisher nicht interessiert hat  ;)  habe ich das mal ausprobiert und bin darüber verwundert, dass ich, je nach Befehl, unterschiedliche Werte erhalte.

Code: [Select]
$ dpkg -l | awk '{print $2}' | wc -l
4756
Code: [Select]
$ apt-show-versions | wc -l
6656
Code: [Select]
$ apt list --installed | wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

3863

In Synaptic steht, dass bei mir 4141 Pakete installiert sind.

Bei dem Befehl von bluelupo ist mir dann aufgefallen, dass dort sowohl installierte, als auch nicht installierte Pakete aufgezählt werden. Wenn ich die Anzahl der nicht installierten Pakete ermittle.
Code: [Select]
$ apt-show-versions | grep "not installed" | wc -l
2515

und diese dann von der zuert ermittelten Zahl abziehe, komme ich auf den Wert, der mir Synaptic anzeigt.
Code: [Select]
6656 - 2515 = 4141

Offline pit

  • User
  • Posts: 237
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #3 on: 2017/11/30, 15:14:41 »
Bei mir wirft apt-show-versions auch solche Zeilen aus (Beispiel):
Code: [Select]
yakuake:i386 not installed
Also vielleicht besser:

Code: [Select]
apt-show-versions | grep -v "not installed" | wc -l
Oder gleich so:

Code: [Select]
dpkg -l | grep '^ii' | wc -l
Variante 2 ergibt bei mir eine etwas geringere Anzahl. Daraus schließe ich, dass die Liste aus Variante 1 noch mehr irrelevantes Zeugs enthält.
« Last Edit: 2017/11/30, 15:18:20 by pit »

Offline whistler_mb

  • User
  • Posts: 198
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #4 on: 2017/11/30, 19:04:32 »
@pit

bei mir kommt bei deinen beiden Befehlen das gleiche raus

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #5 on: 2017/11/30, 21:17:04 »
Obiges Beispiel von mir war nicht korrekt. Diese Befehlsvarianten liefern alle das gleiche Ergebnis bei mir.

Code: [Select]
# Warning Ausgabe von "apt list" nicht anzeigen und Zeilen suchen die Klammerpaare von der Sorte [] enthalten
# apt list --installed 2>&1|egrep '(\[.*\])'|wc -l
2177

# Ausgabe ab Zeile 7 (vorher nur Headerzeilen)
# dpkg -l|awk '{if (NR>=7) print $2}'|wc -l
2177

# nur installierte Pakete anzeigen
# apt-show-versions |egrep -vi "not installed"|wc -l
2177

Aber alle Varianten sind im Prinzip gleich "schwierig" zu tippen, daher würde ich das in ein Alias packen.

Offline Penyelam

  • User
  • Posts: 220
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #6 on: 2017/11/30, 22:07:10 »
warum nicht einfach
Code: [Select]
dpkg -l | wc -l?

an den Zeilen ändert awk ja nichts.

Offline Geier0815

  • User
  • Posts: 586
Re: Anzahl installierter Pakete eleganter ermitteln?
« Reply #7 on: 2017/12/01, 10:08:52 »
@Penyelam,
hast Recht, kam dadurch das ich beim Testen von dpkg durch ein kleines Terminalfenster Umbrüche gesehen habe und deshalb erst einmal durch awk geschickt habe und dann erst das wc -l dran gehängt habe.

@all,
Bei dpkg -l sollte man wohl erst einmal auf "ii" greppen da man sonst deinstallierte Pakete mit gezählt bekommt (zB Status rc in dpkg). Wobei "ii" auch unsauber ist weil man dann gehaltene Pakete nicht mit zählt, die haben den Status "hi". Also müßte man eigentlich auf die zweite Stelle im ersten Block mit Inhalt "i" greppen.
Code: [Select]
dpkg -l | awk '{print $1}'| grep "^.i" | wc -lDas "^" im grep muß sein, da sonst die Zeile "Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig" mitgezählt wird.
Echt nicht trivial und ich bin mir nicht sicher ob ich damit wirklich alle Eventualitäten abgedeckt habe. Von daher wundert es mich das es eine solche Option zum Zählen der installierten Pakete nicht in apt oder dpkg direkt gibt. Es beruhigt mich aber das ich nicht nur zu doof war die zu entdecken.
Und Danke für die anderen Vorschläge an das Problem heran zu gehen!
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?