Posts tagged ‘Emacs’

ERP5 への道 — 導入編1

はじめに

先日(有)ロングフィールドさんが主催した Zope/ERP5 勉強会に参加した。この勉強会は複数回の開催が予定されていて、今回は Zope と EPR5 の実行環境の作り方が話題の中心だった。これが結構手間の掛かる作業だったので、備忘録として書き留めておくことにする。

勉強会ということで、ノート PC 上の VMWare Server に Mandriva Linux をインストールし、これを Zope と ERP5 のベース環境とする。本稿では Mandriva のインストールを終えるところまでを記載する。なお、OS インストールにかなり時間が掛かったが、これは使用したノート PC の HDD が非力によるものと思う。

PC のスペック : Pentium M 1.2GHz/1GB memory/80GB Ultra ATA HDD (1.8inch)

ところでなぜ Mandriva なのかということだが、ERP5 の開発元である Nexedi 社の標準的な開発環境が Mandriva なので、ERP5 との相性が良いということらしい。どちらも同じフランス発祥の OSS であることも関係しているのかもしれない。

VMWare Server のインストール

これは別の記事で既に書いてある手順に従う。現時点で入手可能な最新版は 2.0 だが、ロングフィールドさんによると使い勝手の点から 1.0.9 を推奨するとのこと。ちなみに最近リリースされたばかりの VMWare Player 最新版では、自分で仮想マシンを作ることができるようになったらしいので、Server の代わりに Player を使えるかもしれない。

Mandriva の iso イメージファイルを入手

iso イメージファイルは Mandriva の Web サイトから入手できるが、ここから直接ダウンロードできるのは英語版だけである。日本語版も用意されているが、こちらを手に入れるためには BitTorrent を使う必要がある。日本語版の iso イメージファイル名は次のとおり。これは GNOME 版だが KDE 版もあるようだ。

mandriva-linux-one-2009.1-GNOME-africa-asia-cdrom-i586.iso

BitTorrent 用の .torrent ファイルは次の URL で入手できる。

http://torrent.mandriva.com/public/

また BitTorrent が使えなくても、Linux ディストリビューションを配布している理研などのミラーサイトでも、この iso イメージファイルを見つけることができる。

http://ftp.riken.go.jp/Linux/mandrake/official/iso/2009.1/mandriva-linux-one-2009.1-GNOME-africa-asia-cdrom-i586.iso

仮想マシンに OS をインストールする工程では、イメージファイルを HDD に置いたまま使うので、DVD-R などに焼く必要はない。

仮想マシンの作成

iso イメージファイルを入手できたら、VMWare Server で仮想マシンを作る。”Virtual machine configuration” で “Typical” を選択し、OS 一覧にある Mandriva を選ぶ。同じリストに Mandriva の前身である Mandrake が並んでいるので、間違えて選ばないようにする。

“Network connection” は NAT を選ぶ。今回のインストール作業では bridged を選ぶと、Mandriva 仮想マシンからネットワークへの接続が出来ないという現象に悩まされた。同一環境で Ubuntu を仮想マシンとしてインストールしたときは bridged でも大丈夫だったので、Mandriva 特有の現象かもしれないと考えている。なお、ここで bridged を選択したとしても、後で簡単に変更することが可能である。

“Disk capacity” はデフォルト値 8GB のままで大丈夫。ここで “Allocate all disk space now” のチェックを外したほうが良い。そうしないと最初から 8GB 分の初期化を行おうとするため非常に時間が掛かるし、ディスク容量も無駄に確保してしまう。もうひとつのオプションである “Split disk into 2GB” をチェックすると、仮想マシン用に確保される実ファイルが 2GB ごとに分割される。今回はチェックしなかったので、OS インストール終了後にはおよそ 2.6 GB程度のファイルが出来上がっていた。

ディスクの Allocate を指定しなければ、ここはあっというまに完了するはず。Allocate のチェックを入れると、初期化が始まってしまって途中でキャンセルができない。

仮想マシンが出来上がったら VMWare のコンソールに戻り、追加した仮想マシンの Device 情報を一部変更する。仮想マシンに割り当てられるメモリはデフォルトで 256MB だが、今回はこれを 512MB に変更してみる。ちなみにホストの実メモリは1GB。この値も後からいつでも変更可能だが、多めに設定しておけばインストールが多少は早くなるかも、と考えた。

OS のインストールはホストマシンの CD-ROM/DVD デバイス経由でももちろん可能だが、HDD 上の iso イメージファイルから直接起動することもできる。そのため一時的に CD-ROM デバイスの Connection 情報を “Use ISO image” に変更し、同時に iso イメージファイルを置いてあるパスを指定しておく。

OS インストール

ここまでの設定を完了したら “Start this virtual machine” を実行する。CD-ROM デバイス情報を切り替えているので、指定の iso イメージファイルがライブ CD として認識され、CD 版の Mandriva が立ち上がる。ここはとても時間が掛かる。ノート PC の非力な HDD(1.8 inch) が影響しているのか、起動するだけで 10分以上も掛かった。

VMWare の仮想マシンに Linux をインストールするときは CUI モードにするか、GUI を使うのであれば VMWare をフルスクリーンにしないと、インストールが極端に遅くなるといった情報もあった。しかし Mandriva のインストールに CUI モードはなさそうなので、フルスクリーン状態で起動すれば多少は時間を短縮できるのかもしれない。

仮想 CD-ROM から無事に Mandriva が起動すると、GNOME デスクトップが表示される。そこに “Live インストール” アイコンがあるので、これをクリックすると仮想マシンの HDD に対して Mandriva のインストールが始まる。このとき「不要なパッケージ削除」という処理があるのだが、これにもまた時間が掛かる(おおよそ 7-8 分だったか)ので焦らず気長に待つ。

その後、MANDRIVA’S PRODUCT RANGE 2009 Spring というスプラッシュ画面と、進捗を表示するプログレスバーが表示される。詳細が表示されないのでよく分からないが、ここでパッケージ群が HDD にインストールされている模様。この工程は 40分程度で完了し、最後にブートローダのインストール画面が出て終わり。

一旦シャットダウンし仮想マシンの CD-ROM デバイス設定を、iso イメージファイルからホストマシンの実ドライブに変更しておく。この時点で iso イメージファイルは削除しても構わない。

ここでもういちど仮想マシンを起動すると、スーパーユーザと一般ユーザのアカウント作成を求められる。これですべての初期インストール作業は終了となる。画面は一般ユーザでログインした後の GNOME デスクトップになっているので、念のためインターネットに接続できるかどうかを確認しておく。当初 bridge 設定のままインストールしたとき、インターネットにアクセス出来ない状況になってしまったが、NAT に変えてリブートしたら問題なく接続できた経緯がある。

これからさらに頑張ってパッケージ群を最新のものにアップデートする。RPM 用の GUI 管理ツールがあるので、これを利用する。この作業が完了するのにおおよそ 30分。これでようやく完了となるが、とにかく時間が掛かった。つい最近、まったく同じ VMWare 環境に Ubuntu をインストールしたときは、もう少し短時間でインストールが終了したように思う。

そして最後に必需品の emacs を RPM マネージャ経由でインストールしようとしたらトラブル発生。

以下のパッケージは選択できません:
– xemacs-21.4.22-3mdv2009.1.i586 (libXaw3d.so.7 が依存を満たしていないために)

そもそも libXaw3d.so.7 というライブラリはインストールされていない。/usr/lib の下に libXaw.so.7 なんていうのがあったので、試しにシンボリックリンクを設定してみたりしたのだが状況は変わらなかった。結局、RPM でインストールすることを諦め、後ほどソースコードからインストールすることにして終わる。

このあと Zope と ERP5 をインストールするのだが、長くなってしまったので以降は「導入編2」に続く。

Emacs における矢印や記号文字の取扱い — その後

Emacs 23.1.1 が出たのでインストールしてみた。さっそく起動してみたら .emacs の設定ワーニングが出る。以前に書いた「Emacs における矢印や記号文字の取扱い」で追加した utf-translate-cjk-set-unicode-range の記述が原因のようなので、とりあえずこれを外してみた。そうしたところ設定ワーニングは出なくなったうえに、そのままの状態でも矢印や記号文字も問題なく表示されるようになっていた。Emacs のバージョンが上がって utf 対応が進んだようだ。

ちなみに矢印や記号文字の問題が解消されたのは、GNOME 上の GUI 版 Emacs と Windows + PuTTY 環境の場合である。GNOME 端末上で Emacs を -nw オプションで起動した場合は、あいかわらず矢印や記号文字が正しく表示されない。もっともこちらは Emacs の問題ではなく、GNOME 端末におけるフォント選択か、またはその設定が原因になっていると思われる。

Emacs における矢印や記号文字の取扱い

Emacs 22.3.1 を使って日本語の “→”(漢字の矢印文字)や “※”(こめ印)などを含む文書やプログラムコードを編集しようとすると、表示やカーソル移動の挙動がおかしくなる。これらの文字はいわゆる機種依存文字ではないはずだし、Meadow や日本語対応を明示している版だと問題なかったはずなので、素の Emacs 特有の問題だろうと推測したものの、対策することなくそのままにしていた。しかし、最近またコメント中に “→” を書いてあるコードを触ることになり、この不具合に出くわしたので調べてみたところ、次のところで回答を見つけることができた。

http://www.pqrs.org/tekezo/emacs/doc/wide-character/index.html

このサイトの情報によれば「UTF-8 において文字幅が文脈依存(ambiguous)となる文字」に対して、emacs はデフォルトで narrow character として判定するのに、表示される文字は wide character なので不具合が起こるようだ。確かにこの説明を読むとカーソル移動の挙動が納得できる。同様の現象は emacs だけでなく vi などでも発生するということだったので、vi で確認したところ確かに同じ状況となっていた。

前述のサイトに該当文字群を wide character として認識させるための emacs 用スクリプトが掲載されていたので、これを .emacs に追加することで一応は不具合を解消することができた。しかし、この設定だといわゆるローマ数字など、不具合の出る文字がまだあることに気付いた。また、機種依存文字と思っていた丸囲み数字なども unicode では定義されているので、これらの文字のコード範囲と思われるものをスクリプトに追加してみたが、なぜかうまくいくところとそうでないところがあった。結局ローマ数字の範囲だけを追加するにとどまった。通常の作業にはこれでおおよそ対応できるはずだ。

(utf-translate-cjk-set-unicode-range
  ‘((#x00a2 . #x00a3) ; ¢, £
    (#x00a7 . #x00a8) ; §, ¨
    (#x00ac . #x00ac) ; ¬
    (#x00b0 . #x00b1) ; °, ±
    (#x00b4 . #x00b4) ; ´
    (#x00b6 . #x00b6) ; ¶
    (#x00d7 . #x00d7) ; ×
    (#X00f7 . #x00f7) ; ÷
    (#x0370 . #x03ff) ; Greek and Coptic
    (#x0400 . #x04FF) ; Cyrillic
    (#x2000 . #x206F) ; General Punctuation
    (#x2100 . #x214F) ; Letterlike Symbols
    (#x2190 . #x21FF) ; Arrows
    (#x2200 . #x22FF) ; Mathematical Operators
    (#x2300 . #x23FF) ; Miscellaneous Technical
    (#x2500 . #x257F) ; Box Drawing
    (#x25A0 . #x25FF) ; Geometric Shapes
    (#x2600 . #x26FF) ; Miscellaneous Symbols
    (#x2e80 . #xd7a3)
    (#xff00 . #xffef)

    (#x2160 . #217f)))

補足(2009-07-31 追記):
Emacs のバージョン 23.1.1 からは前記の設定をしなくても、問題は発生しなくなっている。逆にこの設定のままだと 23.1.1 では起動時にワーニングが出るので、utr-translate-cjk-set-unicolde-range の設定は解除したほうが良い。→「Emacs における矢印や記号文字の取扱い ? その後」