こんにちは。

Debian stretchがリリースされたようなので早速アップグレードしました。

基本は公式に則ってインストールを行っていくだけですが、備忘録としてまとめておきます。



jessie より前のOSからstretchへアップグレードしたい人へ


Debian 8 (jessie) より古い Debian のリリースバージョンからの直接のアップグレードはサポートされていないようです。(公式の見解

wheezyやsqueezeを使っている人はまずjessieにアップグレードしてからそれをstretchにアップグレードするか、もしくはstretchを新規にインストールしてイチからOSのカスタマイズを楽しむかのどちらかを選ぶことになると思います。



バックアップ作成


まず何か起きたときのために何らかの方法でバックアップをとっておきます。

僕はVirtualBoxのDebianをアップグレードするのでスナップショットを作成しておきました。



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


サードパーティ製パッケージを確認します。アップグレードの信頼性を高めたい人は削除しておくのが良いようです。

$ aptitude search '~i(!~ODebian)'
# aptitude

続けてgと押して、何も起こらなければ次へ。(何か起きたら画面の指示に従って修正してください)

$ dpkg --audit 

holdされているパッケージ探す。

# aptitude search "~ahold"

もしあればholdを解除しておくのが推奨のようです。



アップグレード


アップグレードの手順自体は簡単で、

  1. ソースのリストを編集して
  2. apt-get updateし、
  3. apt-get upgradeし、
  4. apt-get dist-upgradeをかける

だけです。apt-getのコマンドが何をやっているかはこのページを参照すると良いと思います。 公式でapt-getが推奨されているようなので、普段はaptitudeを使っている僕も公式に従うことにします。

まずソースのリストを編集します。

# emacs /etc/apt/sources.list

ファイルを開くと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-src http://security.debian.org/ jessie/updates main contrib non-free

# jessie-updates
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

これの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-src http://security.debian.org/ stretch/updates main contrib non-free

# stretch-updates
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

このとき、 /etc/apt/sources.list.d/ などに追加のソースがある場合は、それらのファイルもStretchに対応するよう更新してください。

ソースのリストが編集できたら

# apt-get update

を実行します。

何か起きた時のデバッグ用にスクリプトを保存しておく。(推奨)

$ script -t 2>~/upgrade-stretch1.time -a ~/upgrade-stretch1.script



ここまで来たら準備ができたので、

# apt-get upgrade

として、

# apt-get dist-upgrade

(寝ましょう。ネット環境や取得するパッケージリストの数にもよりますが僕の場合だと3時間ぐらいでした)



起きるとこのようになっていると思います。

stretch install dialog

「稼働中のサービスを確認せずに再起動してもしても良いか?」と聞かれているので良い場合はyesを選択します。それが許せない場合はnoを選択します。

しばらく待っていると、GUI環境の人はデスクトップが切り替わると思います。

僕はcinnamonを入れているのでこのようになりました。

stretch cinnamon desktop

これでアップデート自体は終わりです。最後に不要になったパッケージを削除するため、

# aptitude purge '~c'

を実行して完了です。新しいOSを楽しみましょう。





追記(2017/07/24)

VBoxGuestAdditionを使っている場合それも新しくしないといけないようだったので追記。

参考:https://virtualboxes.org/doc/installing-guest-additions-on-debian/

まずVBoxGuestAddition.isoが挿入されていることを確認。



VMを起動して、

# aptitude install build-essential module-assistant

カーネルモジュールをビルドするために以下を実行

# m-a prepare

実行すると、/media/cdrom/以下にVBox~みたいなのがたくさんいると思います。

その中のVBoxLinuxAdditions.runを実行します。

# sh /media/cdrom/VBoxLinuxAdditions.run

終わったら再起動します。何も起こらなければうまくいっているはずです。