이전에 여유 디스크 공간을 확인하기 전에 실수로 apt-get update, apt-get dist-upgrade를 실행했습니다. 내 루트/파티션이 일부 로그 오류로 가득 차 있다는 사실을 거의 알지 못했습니다. 그래서 업데이트하는 동안 다음 두 가지 오류가 발생했습니다.
gdbm fatal: read error
그리고
/usr/bin/mandb: can't write to /var/cache/man/26407: No space left on device
이러한 경고 외에도 업그레이드가 성공적으로 완료된 것으로 보입니다. 전체 업그레이드 로그는 다음과 같습니다.
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:~#
물론, 내가 가장 먼저 실행한 것은 다음과 같습니다.
root@titan:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 9611492 9124696 0 100% /
공간이 없으면 apt-get은 어떻게 업데이트를 다운로드합니까? (아마도 tmpfs이거나 대부분의 업데이트를 위한 충분한 공간이 있을 것입니다). 내 질문은 이제 내 시스템이 엉망인지 어떻게 확인합니까? 달리기apt-get dist-업그레이드이번에도 오류가 나타나지 않으며 조치가 필요하지 않습니다. 재부팅은 순조롭게 진행되었으며 오류도 발생하지 않았습니다. 하지만 이전 업그레이드 프로세스를 확인하거나 어떻게든 업그레이드를 반복하거나 필요한 경우 마지막 업그레이드를 롤백할 수 있는 방법이 있는지 여전히 궁금합니다. (Debian Wheezy 7.9 설치입니다.)
답변1
아마도 실제로 다운로드하기 전에 충분한 공간이 있었기 때문에 이러한 패키지를 다운로드했을 것입니다.
달리기를 하시나요
apt-get clean
, 아니면apt-get autoclean
최근에 달리기를 하신 적이 있나요? 그렇지 않은 경우/var/cache/apt/archives/
디렉터리(apt-get
패키지를 다운로드하는 위치)가 상당히 클 수 있습니다.du -sh /var/cache/apt/archives
그럼 얼마나 큰지 확인해 보세요apt-get clean
.오래된 로그 파일 삭제를 포함하여 더 많은 디스크 공간을 확보하기 위해 필요한 다른 조치를 취하십시오.
apt-get dist-upgrade
오류 없이 실행되고 아무런 조치도 취하지 않으면 업그레이드가 성공한 것입니다 . 할 일이 별로 없습니다.dpkg --configure --pending
그렇지 않은 경우 먼저 절반 설치된 패키지 구성을 실행한 다음 다시 실행하여 업그레이드를 다시 실행할 수 있습니다apt-get dist-upgrade
. 필요한 모든 패키지(제거되었으므로apt-get clean
)를 다시 다운로드한 다음 설치합니다.
업그레이드가 심각하게 엉망인 경우 이전 패키지 중 일부를 오류 없이 실행 apt-get -f install
하거나(필요한 경우 apt-get이 알려줌) 수동으로 설치(또는 제거) 해야 할 수도 있습니다. 무섭게 보일 수도 있지만 보기만큼 나쁘지는 않습니다. 기억해야 할 핵심은 "당황하지 마세요!"입니다. 침착하고 천천히 처리하고, 오류 메시지를 주의 깊게 읽고, 어떤 패키지에 대해 불만이 있는지 확인하고, 작업을 수행하기 전에 다시 한 번 생각하십시오. 당황하고, 성급하고, 성급하게 반응하는 것은 재앙의 비결일 뿐입니다.dpkg
apt-get
이러한 패키지를 강제로 다시 설치하려면 다음을 시도해 보십시오.
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
즉, 패키지 이름을 복사하여 apt-get --reinstall install
명령줄에 붙여넣으면 됩니다.