Я попытался исправить сломанную установку autodl irssi на арендованном выделенном сервере под управлением Ubuntu 18.04.1 LTS (GNU/Linux 4.9.0-15-amd64 x86_64) и Swizzin Box, удалив и переустановив пакет box autodl.
удаление autodl дало :-
SUCCESS autodl removed
ERROR dpkg database is locked by apt-get. Please try again later
попытка переустановить его дала :-
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.
журнал показывает
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
выполнение 'apt --fix-broken install' дало :-
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)
Есть ли у кого-нибудь предложения, как я могу решить эту проблему?
Попробуйте sudo apt --fix-broken install libdpkg-pearl
. Также посмотрите, нет ли у вас прикрепленных пакетов: запустите apt policy
и проверьте, нет ли чего-нибудь интересного. В данном случае "интересное" включает любые сторонние репозитории: если строка не включает "ubuntu.com", это подозрительно.
Бывают случаи, когда сторонние репозитории (не принадлежащие Canonical) необходимы, например, для проприетарного программного обеспечения, которое нельзя распространять, или когда последняя версия программного обеспечения является жестким требованием. Однако эти репозитории ДОЛЖНЫ быть разработаны специально для работы с базовой установкой любой ОС, которая у вас есть, и не должны содержать посторонних пакетов. Вы абсолютно никогда не должны пытаться добиться совместимости, добавляя ссылки на другую операционную систему: например, добавляя Debian Stretch в качестве источника пакетов для выпуска Ubuntu Bionic. Может возникнуть множество странных конфликтов пакетов и неожиданных замен.
Мне не удалось воссоздать эту ситуацию в chroot: apt --fix-broken install
работал даже после нескольких агрессивных удалений. Aptitude может дать вам больше информации, но я сомневаюсь, что вы сможете запустить его, учитывая текущий беспорядок в пакетах. Пастебин из dpkg --list
будет следующей порцией отладочной информации.