Rückwärtsabhängigkeiten prüfen und Paketentfernung simulieren mit rpm -e --test
In diesem Schritt lernen Sie, wie Sie Rückwärtsabhängigkeiten prüfen und die Entfernung eines Pakets sicher simulieren. Während der Befehl rpm -qR
anzeigt, was ein Paket benötigt (seine Abhängigkeiten), zeigt rpm -q --whatrequires
an, was andere Pakete es benötigen (seine Rückwärtsabhängigkeiten). Dies ist äußerst wichtig zu wissen, bevor Sie ein Paket entfernen, da Sie sonst andere Teile des Systems beschädigen könnten.
Um die Folgen der Entfernung eines Pakets sicher zu überprüfen, können Sie den Befehl rpm -e --test
verwenden. Das Flag -e
steht für 'erase' (löschen), und das Flag --test
weist RPM an, einen Testlauf durchzuführen, ohne tatsächlich Dateien zu löschen.
Beginnen wir mit der Untersuchung eines Kernsystempakets, von dem viele andere Pakete abhängen. Das Paket glibc
stellt die GNU C Library bereit, die für fast alle Programme auf einem Linux-System grundlegend ist. Lassen Sie uns prüfen, welche Pakete glibc
benötigen.
rpm -q --whatrequires glibc
Die Ausgabe zeigt mehrere Pakete an, die von glibc
abhängen:
glibc-common-2.34-168.el9_6.19.x86_64
glibc-langpack-en-2.34-168.el9_6.19.x86_64
libstdc++-11.5.0-5.el9_5.x86_64
glibc-headers-2.34-168.el9_6.19.x86_64
pam-1.5.1-23.el9.x86_64
glibc-devel-2.34-168.el9_6.19.x86_64
nscd-2.34-168.el9_6.19.x86_64
Wie Sie sehen können, hängen viele kritische Systempakete von glibc
ab. Lassen Sie uns nun sehen, was passiert, wenn wir versuchen, glibc
zu entfernen. Wir verwenden das Flag --test
, um sicherzustellen, dass wir es nicht tatsächlich entfernen, was das gesamte System beschädigen würde.
sudo rpm -e --test glibc
Da so viele Pakete glibc
benötigen, wird RPM Abhängigkeitsfehler melden und die Entfernung verhindern. Die Ausgabe zeigt eine lange Liste fehlgeschlagener Abhängigkeiten:
error: Failed dependencies:
glibc = 2.34-168.el9_6.19 is needed by (installed) glibc-common-2.34-168.el9_6.19.x86_64
glibc = 2.34-168.el9_6.19 is needed by (installed) glibc-langpack-en-2.34-168.el9_6.19.x86_64
glibc >= 2.34 is needed by (installed) libstdc++-11.5.0-5.el9_5.x86_64
... (additional dependency errors)
Betrachten wir nun ein Paket mit weniger Abhängigkeiten. Das zuvor installierte Paket lsscsi
ist ein Dienstprogramm mit weniger Rückwärtsabhängigkeiten. Lassen Sie uns prüfen, was es benötigt:
rpm -q --whatrequires lsscsi
Sie sollten eine Ausgabe sehen, die anzeigt, dass keine Pakete lsscsi
benötigen:
no package requires lsscsi
Da keine Pakete von lsscsi
abhängen, können wir die Entfernung sicher simulieren:
sudo rpm -e --test lsscsi
Dieser Befehl sollte ohne Fehler abgeschlossen werden, was darauf hinweist, dass die Entfernung von lsscsi
keine anderen Pakete auf dem System beschädigen würde.
Dies zeigt, wie Sie die Auswirkungen der Entfernung eines Pakets vorhersagen und Ihr System durch vorheriges Prüfen der Rückwärtsabhängigkeiten vor Beschädigung schützen können.