Wie wird ein Debian-Paket beschädigt?

Wie wird ein Debian-Paket beschädigt?

Ich habe viele Antworten darüber gesehen, wie man ein beschädigtes Paket in mehreren Distributionen repariert, was sehr hilfreich zu sein scheint und die Probleme löst. Aber ich bin neugierig, wie ein Paket überhaupt beschädigt wird.

Ich habe eine Pipeline behoben, die einen apt-get installBefehl verwendete, und einige Abhängigkeiten konnten nicht installiert werden. Nach einigen Versuchen konnte ich die Pipeline zum Laufen bringen. Aber als ich nach Lösungen suchte, fand ich heraus, dass apt-get ein sehr nützliches --fix-brokenFlag hat, das mein Problem löste. Aber die Frage bleibt:Was war das Problem? Mir ist nicht klar, wie ich das genaue Problem finden kann, das --fix-brokenfür mich gelöst ist.

Auf der Manpage finden Sie einige allgemeine Informationen zu:

Fix; attempt to correct a system with broken dependencies in place. This option, when
           used with install/remove, can omit any packages to permit APT to deduce a likely
           solution. If packages are specified, these have to completely correct the problem. The
           option is sometimes necessary when running APT for the first time; APT itself does not
           allow broken package dependencies to exist on a system. It is possible that a system's
           dependency structure can be so corrupt as to require manual intervention.

Was könnte im Fall einer Pipeline, deren System derzeit instanziiert ist, mit dem Paket passiert sein, das den Abbruch verursacht hat? Kann jemand näher darauf eingehen, wie diese Flags funktionieren? Und insbesondere, wie ein Paket beschädigt wird?

Antwort1

Der typische Fehler, der apt install --fix-brokenbehoben wird, sind fehlende Abhängigkeiten. Der übliche WegDasDies geschieht, dpkgwenn ein Paket direkt installiert wird: dpkgerkennt, ob Abhängigkeiten fehlen, kann fehlende Abhängigkeiten jedoch nicht abrufen, sodass das Paket letztendlich nur teilweise installiert ist (installiert, aber nicht konfiguriert). apt install --fix-brokenlöst defekte Abhängigkeiten auf und installiert alle erforderlichen Pakete – oder entfernt völlig defekte Pakete, wenn deren Abhängigkeiten nicht aufgelöst werden können.

Wenn duSindBei direkter Verwendung dpkgist es normalerweise besser, Folgendes zu verwenden apt install: Sie können es auf ein lokales Paket verweisen und es löst dessen Abhängigkeiten während der Installation auf.

Antwort2

Ein Paket ist einfach ein Stück Software mit einer Liste von Abhängigkeiten. Wenn Ihr System einige nicht standardmäßige Installationen aufweist (z. B. aus dem Quellcode erstellt) oder wenn Sie eine bestimmte Version eines Pakets festgelegt haben (mit „dpkg hold“ oder „dnf --exclude“), um eine andere Installation nicht zu beschädigen, schlägt der Versuch, ein Paket zu installieren, das einen anderen Status aller dieser abhängigen Pakete erfordert, fehl, was zu einem „beschädigten“ Paket führt.

Es ist wichtig zu beachten, dass möglicherweise nichts mit dem Paket oder dem Zustand Ihres Systems nicht in Ordnung ist. Das Originalpaket ist möglicherweise in Ordnung mit Ihrem handkompilierten (was auch immer), aber da es nicht das ist, waserwartetes wird als kaputt angesehen.

verwandte Informationen