Ubuntu 10.10から12.04LTSにアップグレードしました

Updated:

デスクトップマシンとノートPCでは、Windows上で、仮想マシンとしてUbuntuを
動かしています。仮想化ソフトとしてVMWare Playerを使い、その上でゲスト
OSとしてUbuntu Linuxを動かしています。

これまでは、Ubuntu 10.10というかなり古いバージョンを使っていましたが、
先日、さくらVPS上のサーバをUbuntu 12.04LTSにアップグレードしたので、そ
れに合わせて、デスクトップとノートPCのUbuntuも、12.04LTSにアップグレー
ドしました。

アップグレードの際に、いろいろとハマったので、作業内容をメモしておこう
と思います。

これまでに使っていたのは次の組み合わせでした。

VMWare Player 3.1.6
Ubuntu Linux 10.10

1. VMWare Player 4.0.4にUbuntu 12.04LTSを新規インストールしてみる(失敗)

まず最初に、VMWare Playerを最新バージョンの4.0.4にアップグレードしてか
ら、Ubuntu 12.04LTSを新規インストールしてみました。

Ubuntu 12.04LTSはまったく問題なくサクっとインストールできました。

しかし、VMWare Player 4系列には、Unityモード(これはVMWareの機能で、
Windowsのデスクトップ上に、Linuxのウィンドウを表示するというもの)で、ウィ
ンドウを最小化してから再表示させると、勝手にリサイズされてしまい、幅が
数十ピクセル、縦が画面の高さになる、というバグがあり、最新版の4.0.4でも
直っていないことが判明しました。

このバグは、VMWareのサポートフォームにも報告されているのですが、未対応
のままのようです。

VMware Communities: Terminal size changes in VMWare Player 4 Unity mode

私は、(VMWare Playerの)Unityモードを主に使っているので、これでは使い物
になりません。ですから、VMWare Playerの4.0.4はあきらめて、3.1.6に戻すこ
とにしました。

2. VMWare Player 3.1.6にUbuntu 12.04LTSを新規インストールしてみる(失敗)

VMWare Player 3.1.6で、Ubuntu 12.04LTSを新規インストールしてみたところ、
うまくインストールできませんでした。おそらくX-windowの設定でひっかかる
らしく、インストール作業が途中で止まってしまいます。その状態で、リブー
トすると、コンソールモードで止まってしまってX-windowが起動されません。

3. VMWare Player 3.1.6で、Ubuntu 10.10から12.04LTSに順次アップグレードする(成功)

最後の手段として、VMWare Player 3.1.6のままで、現状の10.10を12.04LTSへ
とアップグレードすることにしました。

実際には、10.10から11.04、11.04から11.10、11.10から12.04LTSと3回に分け
てのアップグレードが必要となりました。デスクトップ版のUbuntuでは、アッ
プデートマネージャからGUIベースでアップグレードを実行できるので簡単です。

実際には、途中でときどきダイアログが表示されるので、まったく自動という
わけではありません。例えば、/etc以下のファイル設定をいじっていたりする
と、いちいち「上書きする? それとも前の設定を残す?」と聞かれたりします。

結構時間がかかりましたが(1回のアップグレードで1時間はくらい)、何とか
Ubuntu 12.04LTSにアップグレードすることに成功しました。実は、X-window回
りで、一部妙な動きをするところがあるのですが、実用上は問題ないので、良
しとしました。

これまでに使っていたUbuntu 10.10は、2010年10月にリリースされて、今年の
4月までサポートされていました。しかし、サポートされているとはいえ、ソフ
トウェアがバージョンアップされるわけではないのですね。例えば、10.10では
Emacsはバージョン23.1.1なのに対して、12.04LTSでは23.3.1になっています。

というわけで、サーバ(さくらVPS)とOSのバージョンが一致して、Emacsも新し
くなったので、作業がしやすくなりました。めでたしめでたし。

YAPC::Asia 2011に参加してきました

Updated:

10/13~10/15に東京工業大学で開催されたYAPC::Asiaに参加してきました。

YAPC::Asiaのサイトで動画とスライドが公開されています。また,技術評論社のサイトにレポートがあります。

3つのトラックでさまざまなトークがあり,聴きたいトークが重なっていて,どちらに参加しようか迷うことも多かったです。内容が充実していたための贅沢な悩みなのですが。

個人的には一番興味深かったのは,Pumpking(開発に関する意志決定者)のJesse Vincentさんによる「Perl 5.16 and beyond」でした。(動画とスライドがYAPCのサイトにあります)

これは,題名の通り,Perl 5.16以降のPerl 5のついての話です。

  • 5.16以降では,バージョンアップの際に,できるだけ既存のコードがそのまま動くようにする。具体的には,例えば「use v5.16」のようにバージョンが指定されていれば,そのバージョンのPerl 5の振る舞いを(可能な限り)再現するようになる。
  • 現在のPerl本体は大きくなり過ぎているので,スリム化を行なう。組み込み関数のうち,Perlのコアでないもの(例えば,SysV IPC関数,ソケットIO関数など)はモジュールに追い出す。コアモジュールも見直しを行なう(コアモジュールから外されたモジュールは,CPANに置かれる)。
  • あらゆるところでPerl 5が動くようにしていく。JVM,JavaScript,.NET上でもPerl 5が動くようにする。


北海道から参加された現役高校生のakiymさんのトークでは,小学生のときに,「Perlのプログラムを書くぞお」と意気込んで,「プログラミングPerl」を買ったけど,歯が立たなかった,というエピソードを聞いて,少し申し訳ない気持ちになりました。

10/14の懇親会では,Hachiouji.pmの方に,「多摩といっても広いので,たまには東寄りの吉祥寺でも開いてくださいよー」などと,無理なお願いをしてしまいました。聞き流してください。

また,ゆるPerl,Nagoya.pm, Sendai.pm,Niigata.pmの方々とも,お話をさせていただきました。

YAPC::Asiaは熱気溢れるイベントでした。大いに刺激を受け,「がんばらなければなあ」と気合いが入りました。

スタッフのみなさま,スピーカーのみなさま,本当にありがとうございました。

PerlCasual #4のトーク『Perl中級者への道』のスライドを公開しました

Updated:

PerlCasual #4 「本屋で語るPerlプログラミングTips」 (2011/4/28, 池袋ジュンク堂)で行ったトーク「Perl中級者への道」のスライドを公開します。

Perlの初級者から一歩踏み出して,中級者になるために必要な知識を紹介しています。また,Perlスクリプトでよく使われる慣用句的な表現(イディオム)も紹介します。

内容は次の通りです。

  • strictプラグマとwarningsプラグマ
  • ファイルハンドルとopen関数
  • リファレンス
  • 無名配列,無名ハッシュ
  • 無名サブルーチン,クロージャ

特に,リファレンスはPerlを使いこなすのに重要な概念なので,詳しく説明しています。

動画をYouTubeで公開していますので,あわせてご覧ください。


[2011/6/4追記] スライド10~12ページ目(PDFで32~44ページ目)の説明で,ファイルハンドルと 変数の名前をDATA,$dataから,INPUT,$input, $outputに変更しました。 (Thanks to 小飼弾氏)

PerlCasual #4のトーク『Perl中級者への道』の動画を公開しました

Updated:

4/28に開催されたPerlCasual #4で,『Perl中級者への道』という題名でトークをしました。

「初めてのPerl」を読み終えた人が,中級者になるために次に知るべき知識を紹介しています。

  • strictプラグマとwarningsプラグマ
  • ファイルハンドルとopen関数
  • リファレンス
  • 無名配列,無名ハッシュ
  • 無名サブルーチン,クロージャ

特に,リファレンスはPerlを使いこなすのに重要な概念なので,詳しく説明しています。また,クロージャについても説明しています。

中級者を目指す人は,ぜひご覧ください。