前回は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にアップグレードするのもよいと思います。
次回はサボっていたファイヤウォールの設定を行います。
コメント