pkg-delete will unerwartet viel löschen

rick

Well-Known Member
Diese Reaktion ist mir nicht verständlich:

Code:
root@nf7g:~ # pkg delete py27-imaging-1.1.7_3
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 10 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
py27-imaging-1.1.7_3
py27-opengl-3.0.1_5 (depends on py27-imaging-1.1.7_3)
py27-wxPython28-common-2.8.12.1_3 (depends on py27-imaging-1.1.7_3)
py27-wxPython28-2.8.12.1_3 (depends on py27-imaging-1.1.7_3)
py27-enchant-1.6.5_3 (depends on py27-imaging-1.1.7_3)
ocrfeeder-0.7.7_3 (depends on py27-imaging-1.1.7_3)
py27-sane-2.0 (depends on py27-imaging-1.1.7_3)
hplip-3.14.4_1 (depends on py27-imaging-1.1.7_3)
py27-reportlab2-2.5_1 (depends on py27-imaging-1.1.7_3)
griffith-0.13_1 (depends on py27-imaging-1.1.7_3)

The operation will free 123 MB.

Proceed with deinstalling packages? [y/N]: n

Ich will doch aber nur EINEN Port löschen und nicht die ganzen anderen abhängigen.
Bislang hat das auch immer geklappt. Aber heute ... ?
Kann mir bitte jemand das verklickern, bzw, sagen, was da verkehrt dran ist? Danke.
 
Abhaengigkeiten. Die ganzen anderen Ports haben py27-imaging als Abhaengigkeit und wuerden ohne nicht mehr funktionieren. Deshalb...weg damit...

Ist zwar konsequent,...aber auch irgendwie doof. Wenn man nicht aufpasst, zieht das einem das ganze System unter den Fuessen weg (besonders schlimm mit all den X11 Abhaengigkeiten).

Keine Ahnung ob man das in Zukunft besser loesen koennte...
 
Wieso das einem das System wegziehen soll, verstehe ich nicht.

Es werden doch nur die Abhängigkeiten gelöscht, die von nichts anderem mehr abhängig sind?
 
Es werden doch nur die Abhängigkeiten gelöscht, die von nichts anderem mehr abhängig sind?

Das mag zwar so nicht ganz verkehrt sein...allerdings sind mir diese Abhaengigkeiten doch schon manchmal wichtig...

Beispiel: Erst vorletzte Woche das Bash-Debakel...denkt man sich einfach mal kurz Bash zu deinstallieren, bis ein entsprechender Fix draussen ist...doch dann will pkg mehr deinstallieren, als einem eigentlich lieb ist.
z.B. mein xorg, mein VirtualBox, mein Loginmanager usw...

Man muss also die Liste vorsichtig durchlesen, ob da nicht doch die eine oder andere Applikation mit aufgelistet wird, die man evtl. noch brauchen wuerde.

pkg verhaelt sich hier wahrscheinlich schon korrekt...nur ist diese Liste der Abhaengigkeiten manchmal doch lang...vor allem bei Abhaengigkeiten von Abhaengigkeiten...

Da verschwindet sehr schnell mehr als man eigentlich will, wenn man nicht aufpasst. Allerdings laesst sich es wahrscheinlich auch nicht viel anders loesen...
 
Beispiel: Erst vorletzte Woche das Bash-Debakel...denkt man sich einfach mal kurz Bash zu deinstallieren, bis ein entsprechender Fix draussen ist...doch dann will pkg mehr deinstallieren, als einem eigentlich lieb ist.
z.B. mein xorg, mein VirtualBox, mein Loginmanager usw...

Tatsache...habe das gerade mal getestet. :ugly:

Da fällt mir auch nix mehr zu ein, zum Glück waren die Fixes schnell da.
 
Code:
pkg remove -f bash
Entfernt nur die Bash. Allerdings ist der Abhängigkeitsgraph dann inkonsistent, was pkg an anderer Stelle nicht unbedingt gefällt.
 
Das ist leider ein weit verbreitetes Übel. Es gibt wichtige Abhängigkeiten (Paket enthält eine Applikation, die von einer Bibliothek abhängt und ohne diese nicht startet) und es gibt unwichtige Abhängigkeiten (Paket enthält unzählige Applikationen, ein paar davon - die evtl. selten genutzt werden - haben zusätzliche Abhängigkeiten).

Im zweiten Fall fehlt mir - nicht nur bei FreeBSD - eine einfache Möglichkeit, dem Package-Manager klarzumachen, dass ich selbst für die Abhängigkeit sorgen werde. Man könnte vielleicht lokal ein Dummy-Package ohne Inhalt erstellen?!
 
Ich meine das gibt es in anderen Paketsystemen. Weak dependencies, die einem nur Empfohlen werden. Da werden dann Plugins usw. gelistet.
 
@Yamagi: bei mir gibt es kein pkg-remove (10.0), (man) pkg-remove verweist nur auf pkg-delete.

Und wie macht portmaster das, wenn er dediziert nur einen Port zwecks Austausch löschen will/muss?
Er schreibt noch ein -f davor und dann wird auch nur der eine angesprochen.
 
Eben -- das hat Yamagi wohl gemeint. Danke vielmals.

(Die Sache mit den nützlichen/wertvollen/notwendigen Abhänigkeiten muss man wohl als gegeben hinnehmen.)
 
"remove" ist wihl wirklich nur ein Alias auf "delete". Zu Beginn waren es noch 2 unterschiedliche Kommandos.
 
Das ist eben das Problem, wenn Software zu viele Abhängigkeiten hat.
Die Entwickler sollten IMHO oft etwas vorsichtiger abwägen, bevor sie harte Abhängigkeiten einführen, gerade die bash ist da ein gutes Beispiel:
Mit ein wenig Mehraufwand könnten POSIX shell Scripte zur Anwendung kommen und eine Menge Leute haben etwas weniger Ärger mit dämlichen Shells...

Auch beliebt: die komplette boost reinziehen, nur weil man zu faul ist seinen eigenen Ringpuffer zu implementieren...
 
Keine Sorge, die meisten shell scripts laufen *nicht* mit bash sondern mit sh.
Da schwingt natürlich auch persönliche Meinung mit, aber ich denke, die bash ist vor allem durch linux bekannt geworden. Die BSDer, die ich so kenne, verwenden fast duch die Bank (t)csh.

Zum Problem selbst:

FreeBSD *kann* packages auch trotz Abhängigkeiten löschen. Ob das klug ist, ist eine andere Frage.

Die Lösung ist pkg-delete mit dem -f switch.
-> man pkg-delete
 
Zurück
Oben