Verständnisfrage zu Paketabhängigkeiten unter Linux

oykoi

Lieutenant Pro
Registriert
Sep. 2005
Beiträge
612
Hallo *xler,

habe heute mal eine allgemeine Verstädnisfrage zu Paketabhängigkeiten unter Linux. Hier mal ein Beispiel, was mich nun betrifft und das veranschaulichen soll:

Ich selber nutze mit großer Zufriedenheit Linux Mint 9 was ja Ubuntu-basierend ist. Hier nutze ich stets apt-get. Vor einiger Zeit habe ich den Messenger Pidgin entfernt (remove), da ich diesen nicht nutze. An dessen Libraries hatte ich allerdings nicht gedacht. Soweit, sogut!

Jetzt gibt es Updates für dessen Libraries, die durch ein remove nicht entfernt wurden. Und zwar für pidgin-data, libpurple0 und libpurple-bin.

Diese möchte ich auch entfernen, da ich sie (meiner Meinung nach) nicht benötige, möchte aber keine Abhängigkeiten zerstören.

Hier gibts ja zwei Möglichkeiten um das zu bewerkstelligen, aber das ist meine Frage. Ich verstehe nicht, welche richtig ist bzw. wer was bei depends/rdepends macht...

(1) ENTWEDER
Um zu schauen welche anderen Pakete zB pidgin-data benötigen nutze ich apt-cache rdepends pidgin-data und bekomme folgende Ausgabe (mehrfach vorkommende habe ich der Übersicht halber entfernt):

Code:
henning@beta ~ $ apt-cache depends pidgin-data
pidgin-data
  Wertet auf: finch
  Wertet auf: libpurple0
  Wertet auf: pidgin


(2) ODER
hier um zu schauen welche Pakete benötigt werden von pidgin-data (also: apt-cache depends pidgin-data):

Code:
henning@beta ~ $ apt-cache rdepends pidgin-data
pidgin-data
Reverse Depends:
  libpurple-bin
  libpurple-bin
  libpurple0
  libpurple0
  pidgin-dbg
  pidgin
  pidgin
  finch
  finch
  ...
  ...

Ich denke, bei (2) wird mir gezeigt, welche anderen Pakete pidgin-data benötigen, ist das richtig? Also finch, pidgin und libpurple0 benötigen pidgin-data?

Andererseits sind diese Pakete auch bei (1) gelistet. DAS ist, was ich nicht verstehe...

Nutze Linux sehr gerne und komme soweit auch klar, nur hierbei verdrehts mir "de Sinne".


Ich danke euch für eure Geduld :)


Grüße,
o
 
solche gegenseitigen abhängigkeiten sind völlig normal und der grund warum man nicht selbst mit apt-get geschweige denn dpkg rumspielen sollte. intelligente tools wie aptitude schlagen dir mehrere möglichkeiten vor abhängigkeitsprobleme zu lösen. meistens ist dann auch das dabei was man sich wünscht ^^

hier mal ein kleines scriptchen von mir um mein system sauber zu halten. muss offensichtlcih als root ausgeführt werden und benötigt apt-get, deborphan und aptitude.
Code:
#!/bin/bash
echo ___PACKAGES INSTALLED FOR DEPENDENCIES___&&apt-get autoremove&&echo ___PACKAGES NOTHING DEPENDS ON___&&deborphan --guess-all&&echo "___PACKAGES REMOVED BUT CONFIG LEFT___ (run: aptitude purge '~c')"&&aptitude search '~c'

aptitude purge '~c' muss man selbst ins terminal kopieren und ausführen, da war ich zu faul eine routine für zu basteln ^^
 
Ich denke, dass die erste Methode deiner Vorstellung von Abhängigkeiten nicht zerstören entsprechen sollte. Soweit ich mich erinnern kann sollte jedoch apt-get oder aptitude dich darauf hinweisen, was es alles entfernen möchte.
 
enteon schrieb:
solche gegenseitigen abhängigkeiten sind völlig normal und der grund warum man nicht selbst mit apt-get geschweige denn dpkg rumspielen sollte. intelligente tools wie aptitude schlagen dir mehrere möglichkeiten vor abhängigkeitsprobleme zu lösen.

Ich persönlich hatte keine Abhängigkeitsprobleme. Nettes Script...

4prophy schrieb:
Ich denke, dass die erste Methode deiner Vorstellung von Abhängigkeiten nicht zerstören entsprechen sollte. Soweit ich mich erinnern kann sollte jedoch apt-get oder aptitude dich darauf hinweisen, was es alles entfernen möchte.

Gut. Mir gings ja auch nur ums reine Verständnis. Klar zeigt mir apt-get was ich entfernen will bzw. was es entfernen will.

Nur, wenn ich z.B. pidgin entferne, soll es gefälligst auch pidgin-data und libpurple(0 und -bin) ebenfalls entfernen, falls diese von keinem anderen Programm benötigt werden versteht sich.


EDIT 1:
Fehler im Text korrigiert
 
Zuletzt bearbeitet: (Fehler im Text korrigiert)
problem im sinne von mathematischem problem, also ein zustand für den ein weg gefunden werden muss um ihn in einen bestimmten gewünschten zustand zu überführen ^^

mein "script" ist aber nur dafür da wahrscheinlich nicht mehr benötigte pakete und konfigurationsdaten zu entfernen, also nicht abhängigkeitsprobleme zu lösen, nicht dass das einer falsch versteht :)

pakete die automatisch wegen abhängigkeiten installiert wurden werden mit einem A gekennzeichnet und dann beim deinstallieren des pakets das installiert wurde auch automatisch wieder entfernt. zumindest mit aptitude.
 
Zuletzt bearbeitet von einem Moderator:
enteon schrieb:
problem im sinne von mathematischem problem, also ein zustand für den ein weg gefunden werden muss um ihn in einen bestimmten gewünschten zustand zu überführen ^^

DAS habe ich jetzt gar nicht verstanden... :D

enteon schrieb:
mein "script" ist aber nur dafür da wahrscheinlich nicht mehr benötigte pakete und konfigurationsdaten zu entfernen, also nicht abhängigkeitsprobleme zu lösen, nicht dass das einer falsch versteht :)

Nachdem ich mir das genauer angeschaut bzw. zerpflückt und deborphan nachgeschlagen habe, bin ich zu der Annahme gekommen, es tut genau dies.

enteon schrieb:
pakete die automatisch wegen abhängigkeiten installiert wurden werden mit einem A gekennzeichnet und dann beim deinstallieren des pakets das installiert wurde auch automatisch wieder entfernt. zumindest mit aptitude.

Ja. Denke, ich habe es jetzt kapiert. Ich werde demnächst nur noch aptitude nutzen.

Aber:
Gibt es irgendwelche Probleme oder kann es dazu kommen, wenn man Pakete mittels apt-get installiert und dann aptitude zum entfernen (bzw. auch umgekehrt :)) benutzt?

Meine mal etwas davon gelesen zu haben, das es Probleme geben kann, wenn man zwischen aptitude und synaptic hin- und herwechselt.

(Kann auch sein, dass ich das total durcheinander werfe, ist schon länger her)
 
Gibt es irgendwelche Probleme oder kann es dazu kommen, wenn man Pakete mittels apt-get installiert und dann aptitude zum entfernen (bzw. auch umgekehrt ) benutzt?
Das sollte man eigentlich tunlichst vermeiden, da die beiden auf unterschiedliche Art und Weise die Depencies speichern.

Da du apt-get benutzt, sollte es eigentlich ausreichen, wenn du hin wieder mal ein
PHP:
apt-get autoremove
durchführst. Das sollte alle nicht mehr benötigten Depencies und veraltete Pakete (bspw. historische Kernelversionen) suchen und entfernen.

Ich nehme mal ganz stark an, dass das von dir benutzte apt-get aus der Zeit nach 2006 stammt. :D
 
ghorst schrieb:
Das sollte man eigentlich tunlichst vermeiden, da die beiden auf unterschiedliche Art und Weise die Depencies speichern.

Da du apt-get benutzt, sollte es eigentlich ausreichen, wenn du hin wieder mal ein
PHP:
apt-get autoremove
durchführst. Das sollte alle nicht mehr benötigten Depencies und veraltete Pakete (bspw. historische Kernelversionen) suchen und entfernen.

Ich nehme mal ganz stark an, dass das von dir benutzte apt-get aus der Zeit nach 2006 stammt. :D

Ja. Ich benutze hin und wieder auch mal apt-get autoremove, das schon. Beziehungsweise apt-get autoclean, das hatte bei mir eben die alte Opera-Version entfernt.

Was genau hat es mit 2006 zu tun?
Ich benutze Linux Mint 9 und denke mal, es wird so ungefähr dann aus 2010 sein :)
 
Zurück
Oben