Ich habe versucht, eine beschädigte Autodl-Irssi-Installation auf einem gemieteten dedizierten Server mit Ubuntu 18.04.1 LTS (GNU/Linux 4.9.0-15-amd64 x86_64) und Swizzin Box zu reparieren, indem ich das Box-Autodl-Paket entfernt und neu installiert habe.
Das Entfernen von Autodl ergab: -
SUCCESS autodl removed
ERROR dpkg database is locked by apt-get. Please try again later
beim Versuch einer Neuinstallation kam es zu folgendem Ergebnis: -
INFO Installing autodl
E: Unable to correct problems, you have held broken packages.
ERROR The simulation check resulted in an error. Please consult the log.
das Protokoll zeigt
Reading package lists...
Building dependency tree...
Reading state information...
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
pkg-config : Depends: libdpkg-perl but it is not installed
Das Ausführen von „apt --fix-broken install“ ergibt: -
0 upgraded, 0 newly installed, 1 to remove and 107 not upgraded.
After this operation, 193 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 87206 files and directories currently installed.)
Removing pkg-config (0.29-4+b1) ...
Can't locate Dpkg/Arch.pm in @INC (you may need to install the Dpkg::Arch module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /usr/share/pkg-config-dpkghook line 14.
BEGIN failed--compilation aborted at /usr/share/pkg-config-dpkghook line 14.
dpkg: error processing package pkg-config (--remove):
subprocess installed pre-removal script returned error exit status 2
Errors were encountered while processing:
pkg-config
E: Sub-process /usr/bin/dpkg returned an error code (1)
Hat jemand Vorschläge, wie ich dieses Problem lösen kann?
Antwort1
Versuchen Sie es mit sudo apt --fix-broken install libdpkg-pearl
. Überprüfen Sie auch, ob Sie angeheftete Pakete haben: führen Sie aus apt policy
und suchen Sie nach interessanten Elementen. In diesem Fall umfasst „interessant“ alle Drittanbieter-Repositorys: Wenn die Zeile nicht „ubuntu.com“ enthält, ist sie verdächtig.
Es gibt Fälle, in denen Drittanbieter-Repositorys (die nicht von Canonical stammen) benötigt werden, z. B. für proprietäre Software, die nicht weiterverteilt werden kann, oder wenn die neueste Upstream-Version einer Software zwingend erforderlich ist. Diese Repositorys MÜSSEN jedoch speziell für die Verwendung mit der Basisinstallation Ihres Betriebssystems konzipiert sein und sollten keine überflüssigen Pakete enthalten. Sie sollten auf keinen Fall versuchen, Kompatibilität durch das Hinzufügen von Verweisen auf ein anderes Betriebssystem zu erreichen, z. B. indem Sie Debian Stretch als Paketquelle für eine Ubuntu Bionic-Version hinzufügen. Es können viele bizarre Paketkonflikte und unerwartete Ersetzungen auftreten.
Ich konnte diese Situation nicht in einem Chroot nachbilden: apt --fix-broken install
hat sogar nach einigen aggressiven Entfernungen funktioniert. Aptitude kann Ihnen vielleicht mehr Informationen geben, aber ich bezweifle, dass Sie es angesichts Ihres aktuellen Paketchaos zum Laufen bekommen. Ein Pastebin von dpkg --list
wäre die nächste Debug-Information.