komeの備忘録

東大理系大学院生の技術ブログ。たまに趣味。

Debianのバージョンを6から9にあげてみた

Debianのバージョンを6(squeeze) から 9(stretch) へアップグレードした作業ログ

概要

6→7→8→9と1つずつアップグレードしていく手法を採用した。 最小構成で行った方法なので、パッケージ関連の更新は名人の記事を参考にしよう!

6(squeeze) -> 7(wheezy)

まず、Debian6のパッケージを最新にする。

2018年3月現在、Debian6のサポートは切れており、日本のaptのミラーサーバftp.jp.debian.org はすでにsqueeze向けのパッケージを提供していない。 そのため今回は、まだsqueezeに対応している archive.debian.org を用いる。

aptのサーバを書き換えるために、まずは /etc/apt/sources.list を以下の通りに書き換える

deb http://archive.debian.org/debian/ squeeze main contrib non-free
deb-src http://archive.debian.org/debian/ squeeze main contrib non-free

contrib、non-freeはこの後にパッケージが必要になるので指定しておいた。 この状態でaptの更新をかける。

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

また、合わせて以下のパッケージを入れておいた。 これがないと、おそらくアップグレード時に依存関係のエラーが出る。

# apt-get install firmware-linux

次にsqueeze向けのリポジトリを登録する。 2018年3月現在、wheezyはサポート期間内なので、通常のリポジトリであるftp.jp.debian.org を使う。 従って先程同様、 /etc/apt/sources.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
deb http://ftp.jp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ wheezy-updates main contrib non-free

更に、必要な鍵をaptに登録する。

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9D6D8F6BC857C906
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010

この状態でアップデートをかけよう。

# apt-get update

ここで以下のパッケージを入れておかないと(アップデートしておかないと)、今後エラーが出る。

# apt-get install initscripts

この状態でアップグレードをする。 この時、必要なパッケージが消去されないか、一応確認しながら実行する。

# apt-get upgrade
# apt-get dist-upgrade

upgradeの最中に、yesかnoか聞かれることが多々発生する。これらは、しっかり読んで内容と環境に応じて選択しよう。configファイルの更新なども聞かれる。必要な設定を飛ばさないようにしながら対処しよう。

終わり次第、リブートする。

# reboot

再び立ち上がるとDebian7になっている!

# cat /etc/debian_version
7.11

7(wheezy) -> 8(jessie)

ここからは、多分そんなに詰まることはないと思われる。

一応、アップデートをかけておく。

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

先程同様、/etc/apt/source.list をwheezyからjessieに置換するため、内容を以下のように書き換える。

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

アップグレード実行!

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

途中、/etc/init.d/networking の設定ファイルを新しいものにするか訊かれる
一応、 D でdiffを確認
問題なさそうなら Y で新しい設定ファイルを使うことにする。

終わったら再起動で、Debian8に進化している。

# reboot
# cat /etc/debian_version
8.10

8(jessie) -> 9(stretch)

さっきとだいたい同じ手順でいける。

ますはアップデートをする。

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

先程同様、/etc/apt/sources.list の書き換え (jessie->stretchの置換)以下略

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

アップグレード実行

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

ここで rpcbindnfs-common に関してエラーが出るだろう。 これはDebian Bug reportにも挙げられているもので(#830982, #865617)、rpcbindを止めておけばいいらしい。

# systemctl stop rpcbind
# apt-get dist-upgrade

そして再起動。

# reboot

まとめ

サポートの終了した6から7へのアップグレードが多少面倒だったと思う。それ以降の7->9はサクサクいけた。

こういう面倒くさいアップグレード作業を経験すると、やっぱりローリングリリースのDebian sidは楽だなぁ、とか思う。

補足

今回は ftp.jp.debian.org を用いたが、最近は結構不安定なので、台湾のミラーサーバ ftp.tw.debian.org を用いても良いかもしれない。 debianでは、日本から接続する場合でも日本のミラーサーバより台湾のミラーサーバのほうが速度が出る、と言われている。

Debianのサポート期間

参考までに簡単にまとめておく。 勘の良い人は気づくかもしれないが、Debianのコードネームは、映画トイストーリのキャラクターにちなんでつけられている。過去のバージョンも、Woodyや、Buzzがいたりする。私はトイストーリーが個人的に好きなので、非常に興奮しながらバージョンを上げる回だった。

バージョン コードネーム リリース サポート終了
6 Squeeze 2011-02-06 2016-02-29
7 Wheezy 2013-05-04 2018-05-31
8 Jeesie 2015-04-25 2020-06-06
9 Stretch 2017-06-17 2022-06
10 Buster - -
11 Bullseye - -

参考

bisage.seesaa.net

d.hatena.ne.jp

jessie へのアップデート (LinkStation/玄箱をハックしよう)