Listen Sie alle Software auf, die von einer bestimmten Komponente installiert wurde (nicht kostenlos, Contrib)

11

Gibt es eine Möglichkeit, alle non-freeund contribin Debian installierte Software über aufzulisten apt?

/etc/apt/sources.list ist wie folgt

deb http://ftp.us.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

# wheezy-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ wheezy-updates main
deb-src http://ftp.us.debian.org/debian/ wheezy-updates main

Ich fügte hinzu , non-freeund contribvor Jahren , weil ich einen unfreie Treiber für meine Grafikkarte benötigt, die nun durch einen neuen ersetzt wurde , die keine unfreie Treiber erfordert. Ich würde gerne die nicht freien Sachen loswerden, aber ich fürchte, ich habe im Laufe der Jahre möglicherweise andere nicht freie Software installiert, deren Deinstallation ich mir nicht leisten kann.

Alex
quelle

Antworten:

15
  • dpkg-query -W -f='${Section}\t${Package}\n' | grep ^non-free
  • aptitude search '~i ?section(non-free)'

Section wird nicht frei sein / ... für alles aus dem nicht freien Weg.

[Hinweis] für gcc docs ...

 This documentation is licensed under the terms of the GNU Free
 Documentation License, and contains invariant sections, so it can't be
 part of Debian main.

(Ich habe mich auch darüber gewundert, habe mich aber nicht darum gekümmert, bis es erwähnt wurde.)

Ricky Beam
quelle
Beide ergaben unterschiedliche Ergebnisse ( pastebin.com/rAhYHTk8 ). Das NVIDIA-Zeug ist der Treiber, also scheint dpkg richtig zu sein! Upvoted. Ich frage mich nur, was gcc-doc dort macht.
Alex
Das NVIDIA-Zeug wurde bereits entfernt, wahrscheinlich wurde es aufgelistet, weil es die .deb oder so behielt. Ich erinnerte mich nur an eine Sache, die ich von nicht frei habe und die nicht aufgeführt war: dpkg -l | grep -i nonfreeErgebnisse in flashplugin-nonfree. Ich frage mich, warum das nicht nach Eignung aufgelistet wurde und ob es tatsächlich alles von nicht frei auflistet.
Alex
2
Weil es in Contrib :: Debian / Pool / Contrib / F / Flashplugin-Nonfree ( Section: contrib/web) ist
Ricky Beam
1
Ein dpkg-query -W -f='${Section}\t${Package}\n' | sort | egrep ^contrib\|^non-free
Einzeiler
Betreff dpkg-query -W -f='${Section}\t${Package}\n': SectionZeigt die Komponenten nicht an. (Zumindest tut es nicht für mich auf Ubuntu 18.04.) Ein Beispiel Komponente sein könnte main, contriboder non-free. Während Abschnitte sind Dinge wie: admin, gnome, utils, oder x11.
mpb
6

Es gibt ein Programm namens VRMS(ein virtueller Richard M. Stallman), das die gesamte nicht freie Software auf Ihrem System in einer kurzen Zusammenfassung meldet. Es ist in den Repos und du kannst es über installieren apt;-)

Geeb
quelle
2
Erwähnenswert vrmsfügt sich hinzu /etc/cron.monthly. Ich war angenehm überrascht, als ich einen Monat nach der Installation eine E-Mail von Virtual Stallman erhielt.
Alex
2

Ich hatte vor einigen Jahren einen ähnlichen Drang und konnte nicht feststellen, dass die ursprünglichen Paketinformationen nach dem Herunterladen des Pakets auf dem System gespeichert bleiben. Ich glaube nicht, dass diese Informationen verfügbar sind dpkg.

Am Ende habe ich also eine saubere virtuelle Maschine eingerichtet, die entsprechende eingerichtet /etc/apt/sources.listund die gesamte Liste installiert, die generiert wurde von:

dpkg --get-selections | fgrep -v deinstall | cut -s -f 1

die Pakete, die nicht installiert werden würden (ich habe nur heruntergeladen, um etwas Zeit mit zu sparen apt-get -d).

Möglicherweise können Sie eine ähnliche Aktion ausführen, apt-get --root-directory=some_dirnachdem Sie Ihre vorübergehend geändert sources.listhaben. Ich bin mir jedoch nicht sicher, ob diese Ihre aktuelle Installationsdatenbank verwendet und das Paket nur dorthin verschiebt. Eine VM für diese Art des Experimentierens ist viel sicherer. Normalerweise habe ich eine saubere Basisinstallation meines aktuellen Linux als VM, daher muss ich nur diese klonen (nicht, dass die Installation von Linux auf einer VM so lange dauert).

Timo
quelle
Schöne "Lösung". Ich habe derzeit nicht den Speicherplatz dafür, aber ich kann mir vorstellen, dass apt zuerst die Pakete anzeigt, die nicht gefunden wurden (daher nicht frei sind), richtig?
Alex
@ Alex Ja das ist richtig. Das fehlt irgendwie in der Antwort. Aber Rickys Ansatz ist besser, es sei denn, das Unwahrscheinliche ist passiert und ein Paket hat sich im Laufe der Zeit tatsächlich von einem Repo zum anderen verschoben (und Sie sind nicht auf dem neuesten Stand oder das Paket hat die Versionsnummer nicht geändert).
Timo