O que fazer quando alguns erros acontecem durante um processo de upgrade do apt-get?

0

Eu acidentalmente executei o apt-get update, o apt-get dist-upgrade antes de verificar previamente o espaço livre em disco ... Mal sabia eu que minha raiz / partição estava cheia até o final por alguns erros de log. Então, durante a atualização, recebi estes dois erros:

gdbm fatal: read error

e

/usr/bin/mandb: can't write to /var/cache/man/26407: No space left on device

Além desses avisos, a atualização aparentemente terminou com sucesso. Aqui está o log completo da atualização:

root@titan:~# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libperl5.14 libssl-dev libssl-doc libssl1.0.0 linux-headers-3.2.0-4-amd64 linux-headers-3.2.0-4-common linux-image-3.2.0-4-amd64 linux-libc-dev openssl perl perl-base
  perl-modules
12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 42.9 MB of archives.
After this operation, 1,041 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://security.debian.org/ wheezy/updates/main perl amd64 5.14.2-21+deb7u3 [4,429 kB]
Get:2 http://security.debian.org/ wheezy/updates/main libperl5.14 amd64 5.14.2-21+deb7u3 [1,188 B]
Get:3 http://security.debian.org/ wheezy/updates/main perl-base amd64 5.14.2-21+deb7u3 [1,522 kB]
Get:4 http://security.debian.org/ wheezy/updates/main perl-modules all 5.14.2-21+deb7u3 [3,444 kB]
Get:5 http://security.debian.org/ wheezy/updates/main libssl-doc all 1.0.1e-2+deb7u20 [1,198 kB]
Get:6 http://security.debian.org/ wheezy/updates/main libssl-dev amd64 1.0.1e-2+deb7u20 [1,759 kB]
Get:7 http://security.debian.org/ wheezy/updates/main libssl1.0.0 amd64 1.0.1e-2+deb7u20 [1,263 kB]
Get:8 http://security.debian.org/ wheezy/updates/main linux-image-3.2.0-4-amd64 amd64 3.2.73-2+deb7u3 [23.5 MB]
Get:9 http://security.debian.org/ wheezy/updates/main linux-headers-3.2.0-4-amd64 amd64 3.2.73-2+deb7u3 [639 kB]                                                           
Get:10 http://security.debian.org/ wheezy/updates/main linux-headers-3.2.0-4-common amd64 3.2.73-2+deb7u3 [3,605 kB]                                                       
Get:11 http://security.debian.org/ wheezy/updates/main linux-libc-dev amd64 3.2.73-2+deb7u3 [848 kB]                                                                       
Get:12 http://security.debian.org/ wheezy/updates/main openssl amd64 1.0.1e-2+deb7u20 [702 kB]                                                                             
Fetched 42.9 MB in 9s (4,400 kB/s)                                                                                                                                         
Reading changelogs... Done
Preconfiguring packages ...
(Reading database ... 60824 files and directories currently installed.)
Preparing to replace perl 5.14.2-21+deb7u2 (using .../perl_5.14.2-21+deb7u3_amd64.deb) ...
Unpacking replacement perl ...
Preparing to replace libperl5.14 5.14.2-21+deb7u2 (using .../libperl5.14_5.14.2-21+deb7u3_amd64.deb) ...
Unpacking replacement libperl5.14 ...
Preparing to replace perl-base 5.14.2-21+deb7u2 (using .../perl-base_5.14.2-21+deb7u3_amd64.deb) ...
Unpacking replacement perl-base ...
Processing triggers for man-db ...
gdbm fatal: read error
Setting up perl-base (5.14.2-21+deb7u3) ...
(Reading database ... 60824 files and directories currently installed.)
Preparing to replace perl-modules 5.14.2-21+deb7u2 (using .../perl-modules_5.14.2-21+deb7u3_all.deb) ...
Unpacking replacement perl-modules ...
Preparing to replace libssl-doc 1.0.1e-2+deb7u19 (using .../libssl-doc_1.0.1e-2+deb7u20_all.deb) ...
Unpacking replacement libssl-doc ...
Preparing to replace libssl-dev 1.0.1e-2+deb7u19 (using .../libssl-dev_1.0.1e-2+deb7u20_amd64.deb) ...
Unpacking replacement libssl-dev ...
Preparing to replace libssl1.0.0:amd64 1.0.1e-2+deb7u19 (using .../libssl1.0.0_1.0.1e-2+deb7u20_amd64.deb) ...
Unpacking replacement libssl1.0.0:amd64 ...
Preparing to replace linux-image-3.2.0-4-amd64 3.2.73-2+deb7u2 (using .../linux-image-3.2.0-4-amd64_3.2.73-2+deb7u3_amd64.deb) ...
Unpacking replacement linux-image-3.2.0-4-amd64 ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
Preparing to replace linux-headers-3.2.0-4-amd64 3.2.73-2+deb7u2 (using .../linux-headers-3.2.0-4-amd64_3.2.73-2+deb7u3_amd64.deb) ...
Unpacking replacement linux-headers-3.2.0-4-amd64 ...
Preparing to replace linux-headers-3.2.0-4-common 3.2.73-2+deb7u2 (using .../linux-headers-3.2.0-4-common_3.2.73-2+deb7u3_amd64.deb) ...
Unpacking replacement linux-headers-3.2.0-4-common ...
Preparing to replace linux-libc-dev:amd64 3.2.73-2+deb7u2 (using .../linux-libc-dev_3.2.73-2+deb7u3_amd64.deb) ...
Unpacking replacement linux-libc-dev:amd64 ...
Preparing to replace openssl 1.0.1e-2+deb7u19 (using .../openssl_1.0.1e-2+deb7u20_amd64.deb) ...
Unpacking replacement openssl ...
Processing triggers for man-db ...
/usr/bin/mandb: can't write to /var/cache/man/26407: No space left on device
Setting up libperl5.14 (5.14.2-21+deb7u3) ...
Setting up libssl-doc (1.0.1e-2+deb7u20) ...
Setting up libssl1.0.0:amd64 (1.0.1e-2+deb7u20) ...
Setting up libssl-dev (1.0.1e-2+deb7u20) ...
Setting up linux-image-3.2.0-4-amd64 (3.2.73-2+deb7u3) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
update-initramfs: Generating /boot/initrd.img-3.2.0-4-amd64
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
done
Setting up linux-headers-3.2.0-4-common (3.2.73-2+deb7u3) ...
Setting up linux-headers-3.2.0-4-amd64 (3.2.73-2+deb7u3) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.2.0-4-amd64
Setting up linux-libc-dev:amd64 (3.2.73-2+deb7u3) ...
Setting up openssl (1.0.1e-2+deb7u20) ...
Setting up perl-modules (5.14.2-21+deb7u3) ...
Setting up perl (5.14.2-21+deb7u3) ...
root@titan:~#

Claro que a primeira coisa que eu corri foi:

root@titan:/# df
Filesystem                                             1K-blocks     Used Available Use% Mounted on
rootfs                                                   9611492  9124696         0 100% /

Como o apt-get conseguiu até mesmo baixar as atualizações se não houvesse espaço (hmm talvez para tmpfs, ou talvez houvesse espaço suficiente para a maior parte da atualização). Minha pergunta é como posso verificar se eu estraguei meu sistema agora? Rodar apt-get dist-upgrade novamente não mostra erros e nada para fazer. A reinicialização correu bem, sem erros ... No entanto, ainda estou me perguntando se existe uma maneira de verificar o processo de atualização anterior ou de alguma forma repetir a atualização ou mesmo fazer uma reversão da última atualização (se necessário)? (É uma instalação do Debian Wheezy 7.9)

    
por Ivan Kovacevic 04.03.2016 / 18:01

1 resposta

2
  1. provavelmente baixou os pacotes porque havia espaço suficiente até que eles fossem realmente baixados.

  2. você executou apt-get clean ou apt-get autoclean recentemente? se não, seu diretório /var/cache/apt/archives/ (onde apt-get baixa os pacotes para) é provavelmente enorme. Experimente du -sh /var/cache/apt/archives para ver o tamanho e apt-get clean .

  3. execute quaisquer outras etapas necessárias para liberar mais espaço em disco, incluindo a exclusão de arquivos de log antigos.

  4. se apt-get dist-upgrade for executado sem erro e sem fazer nada, o ugrade foi bem-sucedido. Nada mais a fazer.

  5. Se não, você pode refazer a atualização primeiro executando dpkg --configure --pending para configurar qualquer pacote parcialmente instalado e, em seguida, executar apt-get dist-upgrade novamente. Ele fará o download de todos os pacotes necessários (porque foram excluídos por apt-get clean ) e, em seguida, os instalará.

Se a atualização foi seriamente confundida, você pode precisar executar apt-get -f install (o apt-get dirá se isso é necessário) ou até mesmo instalar manualmente (ou remover) alguns pacotes com dpkg antes de apt-get executado sem erro. Isso pode parecer assustador, mas não é tão ruim quanto parece. A principal coisa a lembrar é "NÃO APAVORE!". Apenas leia com calma e devagar, leia atentamente todas as mensagens de erro para ver de que pacote (s) está reclamando e pense antes de fazer qualquer coisa - entrar em pânico e precipitar-se, reações irrefletidas só levarão ao desastre.

  1. se você realmente quiser forçar uma reinstalação desses pacotes, tente:

    apt-get --reinstall install libperl5.14 libssl-dev libssl-doc libssl1.0.0 linux-headers-3.2.0-4-amd64 linux-headers-3.2.0-4-common linux-image-3.2.0-4-amd64 linux-libc-dev openssl perl perl-base perl-modules

i.e. basta copiar e colar os nomes dos pacotes em uma linha de comando apt-get --reinstall install .

    
por 05.03.2016 / 01:31