Gemeinsame Abhängigkeiten finden

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Gemeinsame Abhängigkeiten finden

Beitrag von Saxman » 21.10.2010 12:51:35

Ich suche eine Möglichkeit gemeinsame Paketabhängigkeiten von Programmen zu finden.
Soll heißen Paket a und paket b hängen beide von Paket c ab. Jetzt soll mir eben nur Paket c angezeigt werden ohne das Ich wie bisher die Paketabhängigkeiten von Hand vergleichen muss.

Also quasi sowas wie ein Vergleich des Outputs von

Code: Alles auswählen

# apt-cache depends a
# apt-cache depends b
der mir nur die in beiden Paketen zusammen vorhandenen Abhängigkeiten auflistet. Ideal wäre es wenn ich nicht nur auf den Vergleich von 2 Paketen eingeschränkt wäre sondern quasi auch mal von 5 Paketen die gemeinsamen Abhängigkeiten suchen kann.

Hintergrund der ganzen Sache ist das Ich jetzt innerhalb von zwei Wochen zum zweiten Mal das Problem hab dass mir ein Upgrade gleich mehrere Programme unbrauchbar macht. Und wenn Ich einen Bugreport schreiben soll muss ich erstmal wissen welches Paket denn nun betroffen ist. Das jedes Mal per Hand zu vergleichen nervt.

Kennt da jemand etwas?
Würde mich wundern wenn Ich der erste wäre der auf diese Idee kommt.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
hikaru
Moderator
Beiträge: 13968
Registriert: 09.04.2008 12:48:59

Re: Gemeinsame Abhängigkeiten finden

Beitrag von hikaru » 21.10.2010 13:25:47

Debiandebtree kann den Umkehrfall: a, b usw. anzeigen wenn du c als Input lieferst. Ob sich auch dein Wunsch umsetzen lässt weiß ich nicht.

lhfloss
Beiträge: 261
Registriert: 07.10.2007 21:02:15
Lizenz eigener Beiträge: MIT Lizenz

Re: Gemeinsame Abhängigkeiten finden

Beitrag von lhfloss » 21.10.2010 15:56:33

Code: Alles auswählen

apt-cache depends a b | sort | uniq -d
EDIT: Bei solchen Ausgaben gibt es Probleme:

Code: Alles auswählen

  Hängt ab von: <xserver-xorg-video-6>
    virtualbox-ose-guest-x11
    xserver-xorg-video-apm
    xserver-xorg-video-ark
    xserver-xorg-video-ati

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Gemeinsame Abhängigkeiten finden

Beitrag von ThorstenS » 21.10.2010 18:15:07

mit dot aus dem Paket Debiangraphviz ist das grafisch möglich:

Code: Alles auswählen

apt-cache -o APT::Cache::GivenOnly=true dotty vim less | dot -Tps > vim.ps
anstelle von Tps kannst du auch Tpng oder Tsvg nutzen.

Oder du schaust in den output von apt-cache und sortierst ihn mit awk &Co.

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gemeinsame Abhängigkeiten finden

Beitrag von Saxman » 21.10.2010 18:53:49

Vielen Dank schon einmal für die Ansätze.

Gamz so happy bin Ich allerdings noch nicht. Aus debtree werde ich nicht ganz schlau. Die Lösung mit sort und uniq geht schon in die richtige Richtung, hat allerdings Probleme mit mehr als 2 Paketen und auch mit Outputs wie

Code: Alles auswählen

# apt-cache depends pidgin
pidgin
  Hängt ab von: pidgin-data
  Hängt ab von: pidgin-data
Und Lösung mit graphviz ist grafisch ziemlich schlecht zu lesen da die Abhängigkeiten in die Breite gehen.

Aber Danke trotzdem.

Wer noch eine Idee hat, nur her damit.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Gemeinsame Abhängigkeiten finden

Beitrag von ThorstenS » 21.10.2010 20:33:23

Du hättest meinen Post bis zu Ende lesen sollen. So gehts:

Code: Alles auswählen

$ apt-cache -o APT::Cache::GivenOnly=true dotty vim less bash | awk -F '"' '/->/ {print $4}' | sort | uniq -d
debianutils
libc6
libncurses5
sort und uniq kann man noch mit awk wegoptimieren, aber das ging mir eben nicht so flott von der Hand.

Antworten