Однажды я попытался выполнить обновление удаленной системы Ubuntu 12.04 (я думаю, или 14.04), и обновление не удалось.
Теперь, когда у меня есть физический доступ к машине, я пытаюсь это исправить. Сначала мне удалось подключить сетевой интерфейс eth0
, добавив строки eth0 в /etc/network/interfaces
и перезагрузившись (в консоль/терминал Recovery); затем я попробовал следующее:
# apt -f install
...
22 upgraded, 464 newly installed, 183 to remove and 52 not upgraded.
5 not fully installed or removed.
Need to get 0 B/257MB of archives.
After this operation, 777 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
debconf: delaying package configuration, since apt-utils is not installed.
(Reading database ... 176434 files and directories currently installed.)
Removing aspell-en (7.1-0-1) ...
Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at /usr/share/perl5/Debian/DictionariesCommon.pm line 7.
BEGIN failed--compilation aborted at /usr/share/perl5/Debian/DictionariesCommon.pm line 7.
Compilation failed in require at /usr/sbin/update-dictcommon-aspell line 4.
BEGIN failed--compilation aborted at /usr/sbin/update-dictcommon/aspell line 4.
dpkg: error processing package aspell-en (--remove):
subprocess installed post-removal script returned error exit status 2
Removing python-software-properties (0.92.37.8) ...
Errors were encountered while processing:
aspell-en
E: Sub-process /usr/bin/dpkg returned an error code (1)
#
Итак, мои вопросы:
Как мне восстановить систему после этого? Очевидно, что я не могу установить или удалить отдельный пакет с помощью apt, пока зависимости не будут исправлены, поэтому я не могу справиться с aspell-en отдельно - и очевидно, что установить Text::Iconv
через cpan
тоже не получается
Почему этот процесс установки должен находить что-либо вообще во время REMOVE? Я не устанавливаю, я удаляю - мне, черт возьми, плевать, найдены ли компоненты программы, если я УДАЛЯЮ часть программного обеспечения?!
Давайте решим эту проблему на низком уровне путем загрузки пакета и установим его непосредственно:
apt-get download libtext-iconv-perl
sudo dpkg -i --force-all libtext-iconv-perl*.deb
и затем возобновляют процесс с
sudo apt-get install -f
sudo apt-get install --reinstall libtext-iconv-perl
sudo apt-get dist-upgrade # to get newest dependencies
Хорошо, благодаря @N0rbert, это теперь фиксируется. Когда я повторно выполнился cpan
, и затем install Text::Iconv
, я понял, что создается 32-разрядный модуль; который перестал работать с wrong ELF class: ELFCLASS32
.
, Очевидно, так как это - поврежденное обновление, Вы не можете сделать apt/apt-get install
, ни apt/apt-get remove
для отдельных пакетов, пока зависимости для apt
не фиксируются (и фиксация зависимостей для apt
сбои, как показано в OP).
прием был к [1 117] загрузка только [1 117] .deb пакет для libtext-iconv-perl
, и затем установите его через dpkg
:
apt-get download libtext-iconv-perl
dpkg -i ./libtext-iconv-perl_1.7-5build2_amd64.deb
Так, к счастью, здесь я получил 64-разрядные двоичные файлы для [1 110] - и теперь, к счастью, apt -f install
сумел удалить aspell-en
- и процесс фиксации продолжает идти...