ServersMan@VPSのDebianをwheezyに更新

前回ServersMan@VPSのDebianパッケージを整理したところまでお伝えしました。

今回はこのDebianをDebian 7.0 (wheezy)にアップグレードします。以前も同じことをして失敗したのですが、ServersMan@VPSのカーネルバージョンが上がっているので、アップグレードできるようになっているはずです。

事前準備

まず、自分のDebianのバージョンを確認します。このバージョンが6.0.9になっていない場合は、前回を参照してパッケージを更新しておきましょう。

cat /etc/debian_version
6.0.9

また、Debian 7.0(wheezy)のリリースノートを確認しておきます。アップグレードに関する章は下記になります。

システムの状態のチェック

リリースノートを参照してシステムの状態をチェックします。基本的にインストールしたばかりなので特に問題はないと思いますが、一応チェックしておきます。

sudo dpkg –audit

APTの設定変更

パッケージの取得先をwheezy用にに変更します。以前は/etc/apt/sources.listに設定を記載しておりましたが、最近はこのファイルは使用しません。内容を空にしておきます。

その代わり、/etc/apt/sources.list.d/ディレクトリにwheezy.listというファイル名で次の内容のファイルを作成します。

deb http://ftp.jp.debian.org/debian wheezy main contrib non-free
deb-src http://ftp.jp.debian.org/debian wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free

パッケージリストの更新

まずはパッケージリストをwheezy用に更新します。更新は「apt-get update」コマンドです。

sudo apt-get update
...
...
取得:20 http://ftp.jp.debian.org wheezy/non-free amd64 Packages [80.8 kB]
17.4 MB を 7秒 で取得しました (2,294 kB/s)
パッケージリストを読み込んでいます... 完了
W: GPG エラー: http://ftp.jp.debian.org wheezy Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 6FB2A1C265FFB764
W: GPG エラー: http://security.debian.org wheezy/updates Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 8B48AD6246925553

更新を実行してみるとエラーが出て失敗してしまいました。どうやら公開鍵のパッケージを入れていないため、パッケージリストのチェックができないようです。

そこで公開鍵のパッケージをインストールしておきます。

sudo apt-get install debian-archive-keyring

この後にパッケージリストを更新すればうまくいくはずです。

sudo apt-get update

最小限のアップグレード

まずは「apt-get upgrade」コマンドで最小限のアップグレードを行います。私の場合は次のようになりました。

sudo apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは保留されます:
apt apt-utils aptitude base-files bash binutils bsdmainutils bzip2
ca-certificates coreutils cpp cpp-4.4 curl db4.8-util dmsetup dpkg dselect
e2fslibs e2fsprogs file fontconfig fontconfig-config gawk gcc-4.4-base
gettext gettext-base ifupdown info initscripts iproute iptables iputils-ping
less libacl1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libattr1
libblkid1 libbsd0 libbz2-1.0 libcap2 libck-connector0 libcomerr2 libcroco3
libcurl3 libcwidget3 libdbus-1-3 libdevmapper1.02.1 libedit2 libexpat1
libfontconfig1 libfreetype6 libgcc1 libgcrypt11 libgdbm3 libglib2.0-0
libgnutls26 libgomp1 libgpg-error0 libgpm2 libgssapi-krb5-2 libidn11
libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2
liblocale-gettext-perl liblockfile1 libltdl7 libmagic1 libmpfr4 libncurses5
libncursesw5 libnewt0.52 libnl1 libpam-ck-connector libpam-modules libpam0g
libpaper1 libpcap0.8 libpcre3 libpopt0 libreadline5 libreadline6 libsasl2-2
libselinux1 libsensors4 libsepol1 libsigc++-2.0-0c2a libslang2 libsqlite3-0
libss2 libssh2-1 libstdc++6 libsysfs2 libtalloc2 libtasn1-3
libtext-charwidth-perl libtext-iconv-perl libudev0 libunistring0
libusb-0.1-4 libuuid1 libwrap0 libxapian22 libxml2 lsb-release lynx lynx-cur
man-db module-init-tools mount ncurses-bin netbase ntp odbcinst
odbcinst1debian2 openssh-client openssh-server openssl passwd perl perl-base
perl-modules procps psmisc python python-minimal python2.6 python2.6-minimal
quota rsync sasl2-bin screen sqlite3 sysvinit tcpdump tcsh ttf-freefont udev
unixodbc util-linux util-linux-locales uuid-runtime vim vim-common
vim-runtime wget whiptail xz-utils zlib1g
以下のパッケージはアップグレードされます:
adduser base-passwd bsdutils console-common console-data console-tools
console-tools-dev cpio cracklib-runtime cron dash debconf debconf-i18n
debconf-utils debianutils diffutils ed expat expect findutils finger ftp
gnupg gpgv grep groff-base gzip hostname initramfs-tools insserv
install-info iputils-arping iputils-tracepath klibc-utils libapr1 libc-bin
libc6 libc6-i386 libconsole libcrack2 libdb1-compat libgeoip1 libklibc
libnfnetlink0 libopts25 libpam-runtime libsqlite0 locales login logrotate
lsb-base lsof lzma m4 make makedev manpages manpages-ja manpages-ja-dev
memtester mime-support mktemp mlocate mtools ncurses-base ncurses-term
net-tools nkf openssh-blacklist openssl-blacklist procmail psutils pwgen
python-support readline-common sed sensible-utils sharutils ssl-cert sudo
syslinux syslinux-common sysv-rc sysvinit-utils tar tcl8.4 tcl8.5 tcpd
tofrodos traceroute tzdata ucf unzip update-inetd whois xinetd
アップグレード: 96 個、新規インストール: 0 個、削除: 0 個、保留: 153 個。
51.8 MB のアーカイブを取得する必要があります。
この操作後に 19.0 MB のディスク容量が解放されます。
続行しますか [Y/n]?

「Y」を押して続行するといくつか問い合わせが出てくることがあります。私は次のように対処しました。

  • console-data
    • そのままリターン
  • libc6
    • NOを選択
  • login
    • そのままリターン
  • /etc/crontab
    • そのままリターン
  • /etc/sudoers
    • Yを入力してメンテナのバージョンをインストール
    • その代わりあとで、「adduser [自分のユーザ名] sudo」を実行する

システムのアップグレード

最小限の更新が完了したら、まとめてシステム全体を更新します。

sudo apt-get dist-upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています ... 完了
以下のパッケージは「削除」されます:
defoma klogd libept1 libperl5.10 sysklogd
以下のパッケージが新たにインストールされます:
aptitude-common cpp-4.7 db-util db5.1-util fonts-freefont-ttf gcc-4.7-base
kmod krb5-locales libapt-inst1.5 libapt-pkg4.12 libasprintf0c2
libboost-iostreams1.49.0 libclass-isa-perl libdb5.1 libept1.4.12 libffi5
libgettextpo0 libgmp10 libkmod2 liblockfile-bin liblzma5 libmount1 libmpc2
libnl-3-200 libnl-genl-3-200 libodbc1 libp11-kit0 libpam-modules-bin
libpipeline1 libprocps0 librtmp0 libsemanage-common libsemanage1 libsigsegv2
libssl1.0.0 libswitch-perl libtinfo5 libustr-1.0-1 multiarch-support
python2.7 python2.7-minimal
以下のパッケージは保留されます:
db4.8-util
以下のパッケージはアップグレードされます:
apt apt-utils aptitude base-files bash binutils bsdmainutils bzip2
ca-certificates coreutils cpp cpp-4.4 curl dmsetup dpkg dselect e2fslibs
e2fsprogs file fontconfig fontconfig-config gawk gcc-4.4-base gettext
gettext-base ifupdown info initscripts iproute iptables iputils-ping less
libacl1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libattr1
libblkid1 libbsd0 libbz2-1.0 libcap2 libck-connector0 libcomerr2 libcroco3
libcurl3 libcwidget3 libdbus-1-3 libdevmapper1.02.1 libedit2 libexpat1
libfontconfig1 libfreetype6 libgcc1 libgcrypt11 libgdbm3 libglib2.0-0
libgnutls26 libgomp1 libgpg-error0 libgpm2 libgssapi-krb5-2 libidn11
libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2
liblocale-gettext-perl liblockfile1 libltdl7 libmagic1 libmpfr4 libncurses5
libncursesw5 libnewt0.52 libnl1 libpam-ck-connector libpam-modules libpam0g
libpaper1 libpcap0.8 libpcre3 libpopt0 libreadline5 libreadline6 libsasl2-2
libselinux1 libsensors4 libsepol1 libsigc++-2.0-0c2a libslang2 libsqlite3-0
libss2 libssh2-1 libstdc++6 libsysfs2 libtalloc2 libtasn1-3
libtext-charwidth-perl libtext-iconv-perl libudev0 libunistring0
libusb-0.1-4 libuuid1 libwrap0 libxapian22 libxml2 lsb-release lynx lynx-cur
man-db module-init-tools mount ncurses-bin netbase ntp odbcinst
odbcinst1debian2 openssh-client openssh-server openssl passwd perl perl-base
perl-modules procps psmisc python python-minimal python2.6 python2.6-minimal
quota rsync sasl2-bin screen sqlite3 sysvinit tcpdump tcsh ttf-freefont udev
unixodbc util-linux util-linux-locales uuid-runtime vim vim-common
vim-runtime wget whiptail xz-utils zlib1g
アップグレード: 152 個、新規インストール: 41 個、削除: 5 個、保留: 1 個。
104 MB のアーカイブを取得する必要があります。
この操作後に追加で 37.3 MB のディスク容量が消費されます。
続行しますか [Y/n]?

ここでも「Y」を入力して続行するといくつか問い合わせがあります。私の場合は次のように対応しました。

  • apt
    • Yを選択
  • libpam0g
    • そのままリターンキーを入力
  • bsdmainutils
    • Yを選択
  • man-db
    • Yを選択(2回選択)
  • saslauthd
    • そのままリターンキーを入力

確認

無事に更新が完了したらDebianのバージョンがどうなっているか確認してみます。

cat /etc/debian_version
7.5

この値が7.xと表示されればOKです。私が試したときには7.5となりました。

後片付け

あとは不要になったファイルを削除しておきます。

まずはダウンロードしたパッケージです。インストール後は不要ですので削除します。

sudo apt-get clean

次にdeborphanというパッケージを使って未使用のパッケージを見つけ出して削除します。2,3回実行するとよいようです。

sudo apt-get install deborphan
sudo apt-get remove --purge `deborphan --guess-dummy`
sudo apt-get remove --purge `deborphan --guess-dummy`
sudo apt-get remove --purge `deborphan --guess-dummy`

最後にautoremoveというコマンドで不要なパッケージを削除しておきます。

sudo apt-get autoremove

まとめ

今回はServersMan@VPSのDebian 6.0(squeeze)をDebian 7.0(wheezy)にアップグレードする方法を紹介しました。

Debian 6.0は長期サポートとしてセキュリティアップデートは続けられていますが、収納されているパッケージは古くなっているものもあります。自己責任となりますが、新しいパッケージを使いたい人はwheezyにアップグレードするのもよいと思います。

次回はサボっていたファイヤウォールの設定を行います。