わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

etchからlennyへのアップグレード(Rubyで書き換え)

昨日はnetinstのISOファイルをもとに,VMware Player上に新規インストールする方法を書きましたが,次に,既存のetchサーバをlennyにアップグレードしましょう.
etch から lenny へのアップグレード ( UNIX ) - *読書と物理と時々車 - Yahoo!ブログの『/etc/apt/source.list の etch のところを lenny にする』が不可欠ですが,エディタを起動して書き換えるのでは,置換漏れや,leenyにするような置換ミスもあるかもしれないので,シェルからコマンドを実行させました.
以下rootになって実行します.まずは現状.

# cat /etc/apt/sources.list
deb http://cdn.debian.or.jp/debian/ etch main contrib non-free
deb-src http://cdn.debian.or.jp/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

アップグレード作業と関係ありませんが,cdn.debian.or.jpについては,Debian JP Project - CDN 対応ミラーの設定に書かれているとおりです.
Rubyワンライナーを実行させる前に,置換に失敗するとまずいので*1,バックアップをとっておきます.

# cp /etc/apt/sources.list /tmp

では,Rubyetchをlennyに置換.

# ruby -p -i.etch -e '$_.gsub!("etch","lenny")' /etc/apt/sources.list

内容確認を.

# cat /etc/apt/sources.list
deb http://cdn.debian.or.jp/debian/ lenny main contrib non-free
deb-src http://cdn.debian.or.jp/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

あとはアップグレード.

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

再起動して,うまくいったら,古いファイルは,消しましょう.

# apt-get autoclean
# rm /etc/apt/sources.list.etch

Iceweaselを起動して,自虐検索しときますか.

*1:rubyで「-e 'gsub!("etch","lenny")'」と書いたら,エラー終了し,元のファイルがなくなりました.危ないあぶない.