Ovion schriebWie kann sich das denn manifestieren? Bin mit apt-* leider (?) nicht sonderlich vertraut.
Beispiel A: Dist-Upgrade von lenny auf squeeze. Da die Debian-Maintainer einen Fetisch für möglich hohe Paketmengen haben, ist der Apache in mehrere Pakete aufgeteilt. Zwei der Apache-Pakete beenden im preinst-Skript den Apache.
Problem 1: Das Init-Script von Apache gibt einen Fehlercode zurück, wenn man einen schon beendeten Apache beenden will (WTF!).
Problem 2: Die preinst-Script laufen mit set -e und beenden sich dann auch (WTF!²).
Problem 3: Apt bricht entsprechend das Update ab.
Da die Hälfte der Pakete (beispielsweise glibc) schon aktualisiert wurden, die andere Hälfte aber nicht, ist das System effektiv tot und unbrauchbar. Danke, Paketmaintainer!
Beispiel B: Bei einem Paket fehlt eine Dependency. Das Postinst-Script versucht, ein Programm zu starten, dass nicht installiert ist.
Problem 1: Apt scheißt sich in die Hose, s.o.
Problem 2: Ich kann das Paket nicht deinstallieren, weil es in einem "inkonsistenten" Zustand ist, und vor der Deinstallation erst sauber installiert werden muss (WTF!³).
Problem 3: Ich kann die Dependency nicht installieren, weil Apt vor der Installation neuer Pakete erst versucht, inkonsistente neu zu installieren (WTF!⁴). GOTO 1. Danke, Apt-Entwickler!
Das ließ sich Gott sei Dank lösen, indem ich die Dependency-Pakete manuell runtergeladen und in der richtigen Reihenfolge mit dpkg manuell installiert habe. Hab ja auch nichts besseres zu tun.
Pacmans --force ist zwar in 99.995% der Fälle unnötig, aber bei den verbleibenden 2 Fällen pro Jahr bin ich heilfroh, dass es das gibt. Und dass die TUs von Arch sich längst nicht so deppert anstellen wie die von Debian. 🙂
@Alaska: Du kannst einfach nicht davon ausgehen, dass die Pakete immer 100%ig korrekt sind, und dann den User für die Fehler der Paketierer bestrafen. Das ist das Problem bei apt.