Linux: aus welcher Quelle ist das Paket xyz

0

Die Anzahl der verwendete Quellen, aus denen man mit der Zeit verschiedene Pakete installiert, werden immer größer. Problematisch kann das ganze dann werden, wenn es aus kompatibilitätsgründen notwendig ist, alle Pakete aus einer bestimmten Quelle zu entfernen. Geht es um eine PPA Quelle, so können die Pakete der PPAs über das "Ubuntu Software-Center" eingesehen werden. Auf der linken Seite werden die einzelnen PPAs mit den daraus installierten Pakete aufgelistet.

Schwieriger wird das ganze jedoch, wenn man dies über die shell herausfiltern muss. Für diesen Zweck gibt es jedoch das Programm apt-cache policy. Mittels apt-cache policy, ist ersichtlich, welche Versionen eines Paketes in welchen Quellen zur Verfügung stehen. Der mit  *** markierte Eintrag ist die Version des installierten Paketes.

apt-cache policy wireshark
wireshark:
 Installiert: 1.4.2+bzr33973~ppa54~maverick1
 Kandidat:    1.4.2+bzr33973~ppa54~maverick1
 Versionstabelle:
 *** 1.4.2+bzr33973~ppa54~maverick1 0
     500 http://ppa.launchpad.net/samba-team/ppa/ubuntu/ maverick/main amd64 Packages
     100 /var/lib/dpkg/status
 1.2.11-4build0.10.10.1 0
     500 http://de.archive.ubuntu.com/ubuntu/ maverick-updates/universe amd64 Packages
     500 http://security.ubuntu.com/ubuntu/ maverick-security/universe amd64 Packages
 1.2.11-2 0
     500 http://de.archive.ubuntu.com/ubuntu/ maverick/universe amd64 Packages

Unter http://askubuntu.com/questions/5976/how-can-i-list-all-packages-ive-installed-from-a-particular-ppa habe ich noch ein Script gefunden, dass eine Liste aller Pakete mit den dazugehörigen Quellen auflistet. Das Script selbst, liegt als Kopie auch noch mal auf hier Server.

LC_ALL=C dpkg-query --showformat='${Package}:${Status}n' -W '*' 
| fgrep ':install ok installed' 
| cut -d: -f1 
| (while read pkg; do
inst_version=$(apt-cache policy $pkg 
| fgrep Installed: 
| cut -d: -f2-);
origin=$(apt-cache policy "$pkg" 
| fgrep " *** ${inst_version}" -C1 
| tail -n 1 
| cut -c12-);
echo $pkg $origin;
done)
Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

Antworten