アップグレードを繰り返していると古いパッケージが残る。これらを検索して削除。aptitude と apt-forktracer とで出力が違うことに注意。
# aptitude search '?and( ?installed, ?not( ?origin(Debian) ) )' i A cpp-4.9 - GNU C preprocessor i fonts-droid - handheld device font with extensive style and language support i A gcc-4.9 - GNU C compiler i A gcc-4.9-base - GCC, the GNU Compiler Collection (base package) i A gfortran-4.9 - GNU Fortran compiler i libapt-inst1.5 - deb package format runtime library i libapt-pkg4.12 - package management runtime library i A libasan1 - AddressSanitizer -- a fast memory error detector i libept1.4.12 - High-level library for managing Debian package information i A libgcc-4.9-dev - GCC support library (development files) i A libgfortran-4.9-dev - Runtime library for GNU Fortran applications (development files) i libgraphite3 - SILGraphite - a "smart font" rendering engine i A libisl10 - manipulating sets and relations of integer points bounded by linear constraints i libnettle4 - low level cryptographic library (symmetric and one-way cryptos) i libreadline6 - GNU readline and history libraries, run-time libraries i A libruby2.1 - Libraries necessary to run Ruby 2.1 i A libsp1c2 - Runtime library for James Clark's SP suite i libssl1.0.0 - Secure Sockets Layer toolkit - shared libraries i A libstdc++-4.9-dev - GNU Standard C++ Library v3 (development files) i libxapian22 - Search engine library i python-reportbug - Python modules for interacting with bug tracking systems i python-support - automated rebuilding support for Python modules i A ruby2.1 - Interpreter of object-oriented scripting language Ruby i A sp - James Clark's SGML parsing tools i sysvinit - System-V-like init utilities - transitional package i w3c-dtd-xhtml - W3C eXtensible HyperText Markup Language (XHTML) DTD # apt-forktracer | sort cpp-4.9 (4.9.2-10) fonts-droid (1:4.4.4r2-6) gcc-4.9 (4.9.2-10) gcc-4.9-base (4.9.2-10) gfortran-4.9 (4.9.2-10) libapt-inst1.5 (1.0.9.8.4) libapt-pkg4.12 (1.0.9.8.4) libasan1 (4.9.2-10) libept1.4.12 (1.0.12.1) libgcc-4.9-dev (4.9.2-10) libgfortran-4.9-dev (4.9.2-10) libgraphite3 (1:2.3.1-0.2) libisl10 (0.12.2-2) libnettle4 (2.7.1-5+deb8u2) libreadline6 (6.3-8+b3) libruby2.1 (2.1.5-2+deb8u3) libsp1c2 (1.3.4-1.2.1-47.3) libssl1.0.0 (1.0.1t-1+deb8u6) libstdc++-4.9-dev (4.9.2-10) libxapian22 (1.2.19-1+deb8u1) linux-image-4.9.0-8-amd64 (4.9.144-3) [Debian: 4.9.110-3+deb9u6] python-reportbug (6.6.3) python-support (1.0.15) ruby2.1 (2.1.5-2+deb8u3) sp (1.3.4-1.2.1-47.3) sysvinit (2.88dsf-59) w3c-dtd-xhtml (1.2-4) # apt-get purge $(aptitude --display-format '%p' --disable-columns search '?and( ?installed, ?not( ?origin(Debian) ) )') # apt-get purge linux-image-4.9.0-8-amd64
apt souces list で参照されているリポジトリをチェックして、proposed-updates がないことを確認。
# grep --regexp='^deb' /etc/apt/sources.list /etc/apt/sources.list.d/* 2> /dev/null /etc/apt/sources.list:deb http://ftp.jp.debian.org/debian stretch main /etc/apt/sources.list:deb-src http://ftp.jp.debian.org/debian stretch main /etc/apt/sources.list:deb http://security.debian.org/ stretch/updates main /etc/apt/sources.list:deb-src http://security.debian.org/ stretch/updates main
apt souces list で参照されているリポジトリを buster のものに変更。
# grep --regexp='^deb' /etc/apt/sources.list /etc/apt/sources.list.d/* 2> /dev/null /etc/apt/sources.list:deb http://ftp.jp.debian.org/debian buster main /etc/apt/sources.list:deb-src http://ftp.jp.debian.org/debian buster main /etc/apt/sources.list:deb http://security.debian.org/ buster/updates main /etc/apt/sources.list:deb-src http://security.debian.org/ buster/updates main
パッケージリストを更新
# apt update Get:1 http://ftp.jp.debian.org/debian buster InRelease [118 kB] Get:2 http://ftp.jp.debian.org/debian buster/main Sources [7,827 kB] Get:3 http://security.debian.org buster/updates InRelease [39.1 kB] Get:4 http://security.debian.org buster/updates/main Sources [25.9 kB] Get:5 http://security.debian.org buster/updates/main amd64 Packages [52.2 kB] Get:6 http://security.debian.org buster/updates/main Translation-en [28.9 kB] Get:7 http://ftp.jp.debian.org/debian buster/main amd64 Packages [7,897 kB] Get:8 http://ftp.jp.debian.org/debian buster/main Translation-en [5,967 kB] Fetched 22.0 MB in 6s (3,316 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 1096 packages can be upgraded. Run 'apt list --upgradable' to see them.
アップグレードに必要な領域があるか確認。スペース不足なので、いくつかパッケージを消した。
# apt -o APT::Get::Trivial-Only=true full-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: (snip) Use 'apt autoremove' to remove them. The following packages will be REMOVED: (snip) The following NEW packages will be installed: (snip) The following packages will be upgraded: (snip) 1096 upgraded, 221 newly installed, 12 to remove and 0 not upgraded. Need to get 2,363 MB of archives. After this operation, 1,804 MB of additional disk space will be used. E: You don't have enough free space in /var/cache/apt/archives/. # apt purge $(deborphan)
二段階アップグレードの1段階目 upgrade を行う。
# apt-get upgrade
apt cleanしてキャッシュを削除した後、二段階アップグレードの2段階目 full-upgrade を行う。
# apt clean # apt-get full-upgrade
再起動
# shutdown -r
システムが degraded モードでないこと、エラーが出ないことを確認。アップデートによって設定ファイルが変わった場合などこれは、apt以外のパッケージシステム(pipとかcpanとか)に依存するデーモンを走らせている場合には必須
# systemctl status (snip) # systemctl (snip) # journalctl --boot --follow (snip)
sshd がファイルが見つからないエラーを出していた。/etc/ssh/sshd_config をメンテナの提供するものに差し替えたため。dpkg-reconfigure openssh-server で解決。
# journalctl --boot --unit=ssh (snip) Aug 04 13:25:02 XXXXXXXXXXXXXXXX sshd[3441]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key Aug 04 13:25:02 XXXXXXXXXXXXXXXX sshd[3441]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key (snip) # dpkg-reconfigure openssh-server
diskが見つからず、swapが無効になっていた。swap 領域を変更していたのを忘れていたため。アップデートとは無関係。/etc/fstab 内の swap エントリ AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE を aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee に変更。再起動してswap状態確認。
# journalctl --boot --follow (snip) Aug 04 13:38:12 XXXXXXXXXXXXXXXX systemd[1]: dev-disk-by\x2duuid-AAAAAAAA\x2dBBBB\x2dCCCC\x2dDDDD\x2dEEEEEEEEEEEE.device: Job dev-disk-by\x2duuid-AAAAAAAA\x2dBBBB\x2dCCCC\x2dDDDD\x2dEEEEEEEEEEEE.device/start timed out. Aug 04 13:38:12 XXXXXXXXXXXXXXXX systemd[1]: Timed out waiting for device /dev/disk/by-uuid/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE. Aug 04 13:38:12 XXXXXXXXXXXXXXXX systemd[1]: Dependency failed for /dev/disk/by-uuid/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE. Aug 04 13:38:12 XXXXXXXXXXXXXXXX systemd[1]: dev-disk-by\x2duuid-AAAAAAAA\x2dBBBB\x2dCCCC\x2dDDDD\x2dEEEEEEEEEEEE.swap: Job dev-disk-by\x2duuid-AAAAAAAA\x2dBBBB\x2dCCCC\x2dDDDD\x2dEEEEEEEEEEEE.swap/start failed with result 'dependency'. Aug 04 13:38:12 XXXXXXXXXXXXXXXX systemd[1]: dev-disk-by\x2duuid-AAAAAAAA\x2dBBBB\x2dCCCC\x2dDDDD\x2dEEEEEEEEEEEE.device: Job dev-disk-by\x2duuid-AAAAAAAA\x2dBBBB\x2dCCCC\x2dDDDD\x2dEEEEEEEEEEEE.device/start failed with result 'timeout'. (snip) # swapon --show # blkid (snip) /dev/vda3: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="swap" PARTUUID="XXXXXXXX-YY" (snip) # vi /etc/fstab (snip) # systemctl reboot (snip) # swapon --show NAME TYPE SIZE USED PRIO /dev/vda3 partition 2G 0B -2
レガシーネットワークインターフェイス名の移行。 /etc/systemd/network 以下にある 99-default.link と 50-virtio-kernel-names.link を適切にリネームして、/etc/network/interfaces 内の eth0 を ens3 に書き換えて、再起動。
cd /etc/systemd/network # mv 99-default.link _99-default.link # mv 50-virtio-kernel-names.link _50-virtio-kernel-names.link # vi /etc/network/interfaces (snip) eth0 を ens3 に書き換え # update-initramfs -u (snip) # shutdown -r
# systemctl status # systemctl # journalctl --boot --follow --unit ssh.service # journalctl --boot --follow --unit ddclient.service # journalctl --boot --follow --unit nmbd.service --unit smbd.service
ちょっと困る。外向きのインターフェイスに ipv6 を使っているとgmailへのアクセスがログインエラーでるのはちょっと問題。今の所ipv4だけを使ってるからいいけど。