Meadow(メドウ)の達人(導師)を目指す意味合いで '魔導士への道' と命名しました. 'まどうし' と書いていますが無理矢理 'めどうし' と読んでください.
前回会社の PC がクラッシュしてクリーン インストールしたと書きましたが, どうもメモリ周りが壊れていたようで, 大きなファイルを扱うと頻繁にシステムが落ちます. 結局, 新しい PC に 乗り換えることに. そのおかげか Windows 7 64bit を試すことになりました.
64bit 環境で Meadow は動くのか? ネットで調べても情報がありません. 「問題なく動いているから情報が無いのだろう」と良い方に解釈して いざ TRY!
と書いてから既に 1 年余り, 今 3 台目の Windows 7 機にインストールしています. この記事を参考にしながらも, 微妙に変えた部分もあり, ここに改訂しておきます.
今回は 64bit 環境検証も含めて, なるべく手順を省略すること無く 書いて行こうと思います. 尚, OS は Windows 7 Professional 64bit エディションです.
この記事を読んで Meadow + Canna + YC ユーザが増えることを祈っています. 英語混じりの文章を書く機会が多い人, 2Byte 英数字(通称全角英数字)は なるべく使わないように心がけている人, 是非お試しください.
Meadow のインストールに先だって Cygwin をインストールします. 実はどちらを 先にインストールしても良いのですが, 私はいつも Cygwin を先にいれています.
まずはCygwin のサイトに行って, setup.exe をダウンロードします.
次にダウンロードした setup.exe を実行します. 念のためアイコンを右クリックして [管理者として実行]. 先頭画面で [次へ(N)], Download Source 画面で [Install from Internet] を選択し [次へ(N)], Root Directory 及び User 選択は デフォルトのままで [次へ(N)], Local Package Directory もそのままで [次へ(N)], Internet Connection もそのままで [次へ(N)], Download Site は [http://ftp.jaist.ac.jp] を選択し [次へ(N)] と進みます. Internet Connection, Download Site は自分の環境, 好みに合わせて変更ください.
次に表示される Select Packages 画面で, インストールするパッケージを選択します. 初期設定は Default で, 推奨されるパッケージのみがインストールされるように なっています. ネットワーク速度が遅い方やディスク容量が少ない方は この Default をインストールし, 後で足りないパッケージを追加するのも OK ですが, 私は全てをインストールしておくことをお勧めします. 方法は, 画面の All の横のリサイクルマークの様なクルクルマークをクリックします. するとその横の Default の表示が Install に変わります. (クリックの度に Default → Install → Reinstall → Uninstall → Default の様にトグルします) All - Install になれば「全てインストール」です. [次へ(N)] を選ぶと Progress 画面になりインストール状況が表示されます. 終了まで気長に待ちます.
インストールが終了すると Create Icons 画面となります. Desktop に icon を 作るかどうか等を決めて [完了] ボタンを押します. デフォルトのままの選択で 特に問題ないでしょう.
ここで, Cygwin のパッケージインストール時に, Default を選んだ人のために, この記事で後々必要となるパッケージを挙げておきます.
パッケージ | カテゴリ | コメント |
---|---|---|
gnupg | Utils | メールのパスワード管理で利用 |
stunnel | Net | メールのパスワード管理で利用 |
gcc | Devel | メールのパスワード管理(fakecygpty のコンパイル)で使用 |
make | Devel | 辞書の作成等で使用 |
cygrunsrv | Admin | Canna サーバのサービス登録で使用 |
尚, パッケージを選択したときに, そのパッケージの実行に別のパッケージが 必要となることがあります. Cygwin はパッケージの依存関係の情報も持っていて, このような場合必要パッケージは自動的に追加インストールされます.
次に環境変数を設定します. 本来, 先程インストールした Cygwin 関連の環境変数 だけで良いのですが, 面倒なので, この先必要になる物も合わせて設定して しまいます.
環境変数の設定には [コントロールパネル] → [システム] → [詳細設定] → [環境変数(N)] で環境変数設定画面を開き, ユーザー環境変数(U) の方に 新規(N) 登録して行きます. (該当変数名が既に登録されている場合は, 編集(E) になります.)
変数 | 値 | コメント |
---|---|---|
CANNAHOST | localhost | 無くてもいいんだけど |
EMACS | MEADOW | |
GNUCLIENTW | -F | |
GNUDOITW | -F | |
HOME | C:\Users\uranov | Windows での(本人の)ユーザディレクトリにしておくと何かと便利 |
PATH | C:\Meadow\bin; C:\cygwin\usr\local\bin; C:\cygwin\usr\bin; C:\cygwin\usr\sbin; C:\cygwin\bin; %Path% | |
RUNEMACS | RunMW32.exe | |
TEMP | C:\tmp | 該当ディレクトリの作成を忘れずに |
TMP | C:\tmp | |
TZ | JST-9 |
ここで遂に Meadow のインストールです. 既に何度も書いているので簡単にサクサクと 進めます.
まずはMeadow のサイトに行って, そこからダウンロードページに飛び, Meadow 3.00 (KIKU) 用のネットインストーラ (Netinstall) setup-ja.exe を落とします.
次にダウンロードした setup-ja.exe を実行します. 念のためアイコンを右クリックして[管理者として実行]. ここからは Cygwin のインストール作業と良く似ています. (なるべく合わせてある と言った方が正解かも :-) 先頭画面で [次へ(N)], ダウンロード元の選択画面で [インターネットからインストールする(I)] を選択し [次へ(N)], インストール先ディレクトリの選択はデフォルトのままで [次へ(N)], ローカルパッケージディレクトリの選択もデフォルトのままで [次へ(N)], インターネット接続の選択もそのままで [次へ(N)], Download Site も 適当なところを選び(例えば [http://www.meadowy.org])を選択し [次へ(N)] と進みます.
次にパッケージ選択画面では, Default 選択にいくつか加えます. 例えば library カテゴリの apel を加えるには, カテゴリリスト中の library の左の '+' マークをクリックします. すると library カテゴリに 含まれるパッケージがリストアップされるます. その中の apel の行の クルクルマークをクリックします. Default 選択の場合, apel は最初は Skip になっています. クリックの度に 10.7-1, 200507060208-1, Skip と 変わります. パッケージに安定版と開発版など複数の種類がある場合, バージョンが選択できますが, 基本的に Skip の次に現れるバージョンで OK でしょう.
以下, 今回推奨のパッケージリストです.
パッケージ | カテゴリ | デフォルト | コメント |
---|---|---|---|
Meadow | base | ○ | Meadow 本体 |
imagemagick | ○ | 画像表示用ライブラリ | |
misc | ○ | Meadow のインストールに必要な諸々 | |
apel | library | × | Emacs Lisp の環境依存を吸収するライブラリ(SKK 等で利用) |
mule-ucs | × | 文字コード変換ライブラリ | |
mew | MUA | × | Emacs で動くメールリーダ |
gnuserv | Utils | × | Meadow を Server/Client モデルで利用 |
html-helper-mode | × | HTML 記述モード(HTML 書かない人は不要) | |
migemo | × | 日本語でのインクリメンタルサーチ |
インストールが終わると Create Icons 画面で 「Meadow のインストールを今すぐ実行しますか?」と聞かれます. えっ, まだインストールは始まって無かったの? と驚かないで. ここでのインストールは, インストール後処理(あとしょり)とお考えください. よって [install.exe を実行する(E)] をチェックし [完了] ボタンを押します.
install.exe の実行で, まずMeadow の環境設定ファイル(.emacs)を置く ホームディレクトリをどこにするか聞いて来ます. 既に環境変数 HOME が 適切に設定されていれば何もせず RETURN(Enter) で OK の筈. これで完了です. もし, install.exe を実行するをチェックしなかった場合は, 自分で Meadow のインストールディレクトリ(C:\Meadow)直下にある install.exe を実行しておきましょう.
次に日本語入力のために Canna と YC をインストールします.
Canna のインストールは前回 も書いていますが, 今回なるべく手順を省かないで書くと言う趣旨通り 進めます.
まず, [スタート] → [すべてのプログラム] からコマンドプロンプト(DOS 画面) を管理者権限で立ち上げ, Cygwin の setup.exe を '-X' オプション付きで起動します.
> cd C:\Users\uranov\Downloads ← setup.exe の置かれたディレクトリ > setup -X
前述の Cygwin のインストールと同じ手順で Choose A Download Site 画面まで [次へ(N)] で進みます. Download Site 画面では User URL と書かれている欄に Cygwin JE(Cygwin の日本語環境パッケージ集) のアドレスを入力します.
http://cygwin-je.sourceforge.jp/cygwin_je/
[Add] ボタンを押すとサイトリストの中に cygwin-je が加わるので, それを選択して [次へ(N)] をクリックします.
Select Packages の画面に進み, パッケージリストの System カテゴリの中から Canna を選びインストールします. (私は Canna 以外にも良く使う日本語パッケージを入れています.)
パッケージ | カテゴリ | コメント |
---|---|---|
Canna | System | かんな本体 |
libCanna | System | かんなのライブラリ(Canna を選択すると自動的にインストールされるので選択不要) |
lv | Text | less の様なページャー |
nkf | Utils | 漢字コード変換フィルタ |
Canna のインストールが完了したら, 辞書に手を入れておきます. 以前は cannadic を入れましたが, 今回は cannadic 改をいれてみます. インストール方法も詳しく書かれています. 注意点としては, 私の場合 頻度辞書作成時に cannaserver が起動していないとダメでした.
おっと, ここでよく考えると ~/.canna って自動的に置かれていたっけ. (自分では いつでも以前の環境のホームの下のドットファイルを, 新しい環境にゴソッとコピー しているので, 自動生成かどうかよく分からなくなっています.) ~/.canna が無い場合は /var/lib/canna/default.canna をコピーしておきましょう. そして cannadic 改のインストールをしましょう.
$ cp /var/lib/canna/default.canna ~/.canna
ここまでで辞書ディレクトリは以下のようになっているはずです.
/var/lib/canna/dic/. ← cbp ファイルが置かれている. canna/ ← 辞書マップ dics.dir と辞書ファイル group/ user/uranov/ ← dics.dir とユーザ辞書, 頻度辞書等.
ついでに単語登録用のユーザ辞書を整備しておきましょう.
$ mkdic user $ lsdic ← ユーザ辞書の確認です. gcanna user
本来, 辞書を作ったら, その辞書を使うことを ~/.canna に記述する必要があります. しかし, user と言う名前の辞書だけは既に宣言してある筈です. 後はここに単語を登録して行きます. 私の利用している単語登録方法を 紹介しておきます. (YC を使える様になると, 簡単に単語登録できるようになります. そちらは後ほど紹介.) 以下, 「門仲(もんなか)」と言う地名を登録する例です.
まず登録用のリストファイルを作ります. 一行に, 読み, 品詞コード, 登録単語 を書きます. 複数行記述すれば単語を複数登録できます. ここでは一語のみで 「もんなか #CN 門仲」とします. 品詞コードは かんなマニュアルの 付録 G 品詞コード表にあります. 一度目を通しておくことをおすすめします. ユーザ辞書で良く登録するものを挙げておくと,
コード | 品詞 |
---|---|
#T35 | 一般名詞 |
#T30 | サ変名詞(名詞の後に「する」を付加して動詞にできるもの) |
#KK | 団体・会社名 |
#JN | 人名 |
#CN | 地名 |
などがあります. ファイル名は適当に. (ここでは jisho.txt) ポイントはファイルの文字コードを EUC にしておくことです. 後はこれを addwords コマンドに食わせれば終了.
$ cat jisho.txt | nkf -s ← EUC 表示ができれば nkf に食わせる必要なし. もんなか #CN 門仲 $ addwords user < jisho.txt Addwords has done on "user". $ catdic user | nkf -s ← 登録の確認です. もんなか #CN 門仲 (コマンドラインで漢字入力するのが面倒でなければ, 以下でも OK :-) $ echo "もんなか #CN 門仲" | addwords user
「バッチファイルを作りスタートアップ時に実行する方法」と 「サービスに登録して利用する方法」との 2 種類を試しています. どちらかと言うと後者の方が気に入っています.
cannaserver をサービス化する方法に比べ設定は簡単です. また, 複数のユーザが 利用するマシンでは, ユーザ毎に利用するしないを選択できます. (Windows の スタートアップに登録するかどうか.)
具体的には以下のバッチファイルを作成し,「スタートアップ」に登録します.[canna.bat] @echo off if exist C:\cygwin\tmp\.iroha_unix\IROHA del /a:s C:\cygwin\tmp\.iroha_unix\IROHA C:\cygwin\usr\sbin\cannaserver.exe -inet
「スタートアップ」に登録とは, 上記バッチファイルを Windows の「スタートアップ」 フォルダに置く作業です. 「スタートアップ」フォルダは全てのユーザ用とそれぞれのユーザ用と 2 つあり, 使い方で選べます. 「スタートアップ」フォルダは, Windows の「スタートボタン」 →「すべてのプログラム」と進め,「スタートアップ」フォルダで右クリックし 「エクスプローラー(E)」を選択するのが簡単です. 尚ここで 「エクスプローラー - All Users(X)」を選択すると全てのユーザ用のフォルダに アクセスできます. 手元の Windows 7 マシンの「スタートアップ」フォルダは以下にありました.
[全てのユーザ] C:\ProgramData\Microsoft\Windows\ Start Menu(スタート メニュー)\Programs(プログラム)\Startup(スタートアップ) [各ユーザ] C:\Users(ユーザー)\(ユーザ名)\AppData\Roaming\Microsoft\Windows\ Start Menu(スタート メニュー)\Programs(プログラム)\Startup(スタートアップ)
この作業には Cygwin の cygrunsrv が必要です. インストールされていない場合は 追加パッケージでインストールください. 用意できたら, まずバッチファイルを作成します. 具体的には以下の内容のものを Cygwin のルートディレクトリに置きました.
[canna.bat] @echo off rm C:\cygwin\tmp\.iroha_unix\IROHA --- (1) ping localhost -n 2 > null --- (2) C:\cygwin\usr\sbin\cannaserver.exe -inet -k [注] (1) rm でなく del を使う場合は /a:s (システムファイル指定)オプションを使う. (2) Windows の ping は送信間隔が 1 秒固定であることを利用した wait.
次にコマンドプロンプトを立ち上げます. Cygwin bash 環境でも大丈夫だと思いますが, 私は DOS プロンプトで作業しました. ここで注意としては, サービスの登録には管理者権限が要求されます. そのため管理者権限でコマンドプロンプトを立ち上げてください. そこで以下のコマンドを入力します.
> C:\cygwin\bin\cygrunsrv.exe -I cannaserver -d "CYGWIN cannaserver" -p /canna.bat
実行プログラムの指定(-p)で cannaserver.exe を指定するのではなく, 作成しておいた canna.bat を指定するのがミソです. Canna は正しく シャットダウン手続きが行われないと, UNIX ドメインソケットである /tmp/.iroha_unix/IROHA が残ってしまい, 新たに Canna の立ち上げが出来ません. このためにバッチスクリプト中で以前の IROHA を消すようにしています. 以前, サービスに cannaserver.exe を登録し, 更に「回復プロパティ」で IROHA を消すように設定していたがうまく動いていませんでした. どうも既に IROHA が存在した場合, cannaserver はエラー終了でなく, 即座に正常終了してしまう(もしくは Windows にエラー終了が伝わらない) 様です.
コマンドラインで開始/停止を行うには, 以下を実行します.
[開始] > net start cannaserver [停止] > net stop cannaserver
サービスは Windows の管理ツールを使って確認可能です. (Windows 7 の場合, 「スタート」-「コントロールパネル」-「管理ツール」-「サービス」) ここからサービスの開始/停止も可能です. ここでスタートアップの種類が [自動] に なっていれば, 次回から Windows 起動時に自動的に立ち上がります.
ちなみにこの管理ツールからサービスの取り消しはできないようです. 登録ミスなどで登録を取り消したい場合は sc.exe コマンドを利用します.
[登録名の確認] > sc query cannaserver [停止] > sc delete cannaserver
ここまで来たら後は Meadow 側で YC の設定をします. YC の部屋から 最新版 version 5.0.0 をダウンロードして, 展開したファイルを yc.el とリネーム, lisp のパスが通ったところへ置きます. (私の場合 C:\meadow\site-lisp) ついでに byte-compile しておきましょう. 最後に .emacs に YC 関係の設定を記述. 今回は以下のようにしています. これで, この記述部分を読み込ませるか Meadow を再立ち上げすれば boiled 環境が使えるようになります.
;;------------------------------------ ;; YC (Yet another Canna client) 設定 ;;------------------------------------ (setq yc-server-host "localhost") ; かんなサーバホスト名 (setq yc-rK-trans-key "\C-j") (setq yc-use-color t) (setq yc-use-fence (not (eq window-system 'x))) (load "yc") ; これでフェンスモードは使用可能 (global-yc-mode 1) ; 全バッファで ANK-漢字変換を有効にする (global-set-key "\M-\ " 'yc-mode) (setq yc-canna-lib-path "/var/lib/canna/") ; かんなの初期設定パス (setq yc-canna-dic-path "/var/lib/canna/dic/") ; かんなの辞書パス (setq yc-select-count 2) (setq yc-stop-chars "(){}<>")
ここで前述のユーザ辞書への単語登録について書いときます. YC を使って単語変換し, フェンスが出ている状態で 'C-t' を打つと 単語登録モードに入ります. 上述の方法より数段楽チンです. (但し, このときの単語登録の対象はフェンスの中の部分全部です. 文章の一部などを自分で範囲指定して登録する場合は 'M-x yc-touroku-region' です.)
次にメール設定です. パッケージで Mew を入れた時点で基本的な作業は 終わっているのですが, 私は「複数のメールサーバ(メールアカウント)を 適宜切替える」ために設定に手を加えています.
実際には Gmail のアカウントと, 会社のアカウントを行ったり来たりしています. Mew なら 'C' キーを打った後サーバーを選ぶキーワード (例えば default/gmail/office 等)を入れるだけで接続先を切替え可能です. 他のメールソフトでここまで簡単に接続先を切替える事のできるものを 私は知りません.
この行ったり来たりだけなら, Mew の標準機能で十分です. しかし切替えの度に パスワードを聞かれるのが何とも面倒. そこで master-password 機能を使い メールパスワードの一元管理を行います. ポイントは 2 つのプログラム GnuPG と fakecygpty です.
GnuPG は既に Cygwin のパッケージからインストールしてあるはずです :-) 以下を実行してキーを作成します.
$ gpg --gen-key
gpg 実行時に can't lock memory: Permission denied 等のメッセージが出て うまく行かないことがあります. (自分でハマりました) それは /etc 以下の passwd, group のエントリの問題です. 以下を行う事により解決できます.
mkpasswd -c >> /etc/passwd mkgroup -c >> /etc/group
fakecygpty はその名の通り, CYGwin 環境下で呼び出しプロセスに 仮想(FAKE)の端末(PTY)を与えるプログラムで, Meadow のソースに 含まれています. 実際のソースの取得は $(ソースツリー)/nt/fakecygpty.cに行き, 画面下の方のプレーンテキストでダウンロードをを選ぶのが簡単かな. このダウンロードした fakecygpty.c をコンパイルして, 出来た fakecygpty.exe を Path の通ったディレクトリに置けば OK です. (私は $(Meadow ディレクトリ)/bin 以下に置きました.)
$ gcc -o fakecygpty.exe fakecygpty.c $ install fakecygpty.exe /cygdrive/c/meadow/bin/.
ここまで来たら, 後は .emacs と .mew.el に以下の記述を加えるだけ.
[.emacs] (setq mw32-process-wrapper-alist '(("/\\(bash\\|tcsh\\|svn\\|ssh\\|gpg[esvk]?\\)\\.exe" . (nil . "fakecygpty.exe")))) [.mew.el] (setq mew-use-cached-passwd t) (setq mew-use-master-passwd t)
初回の Mew の起動時に master password を何にするか聞かれます. (確認入力も あります.) このあと, それぞれのメールサーバへの初回接続時にメールパスワードを 聞かれます. (こちらはもちろんメールサーバ毎のパスワードです.) mew-config-alist に記述したサーバの切替え(記述ケースの切替え)コマンド 'C'(大文字の C) を使って, 全てのサーバにアクセスしておきましょう. 初回接続時に設定したパスワードが暗号化して登録され, 初回以降は Mew 立ち上げ時のマスターパスワード入力だけでアクセス可能になります. うーん楽チン.
うーん. やったことはたいしたこと無いのに, 文章にすると長大です. ここまで書いて来て疲れて来ました.
次に Windows との連携強化作業ですが, 以前は色々と設定していたのですが, 最近はショートカットの作成ぐらいしかやってません. よってそれだけを 書き留めておきます. より連携強化を計りたい方は 以前の記事「Windows との連携強化」 を参照ください.
ここまで来たら準備完了. まずはドラッグ & ドロップ用に gnuclientw への ショートカットを作成し, デスクトップに置きます. 設定はこんな感じ. これでファイルをここへ落とせば Meadow が立ち上がります.
gnuclientw へのショートカットですが, ショートカット名は Meadow3 に, またアイコンは meadow の実行ディレクトリにある meadow.ico にしています.
後, フォントは日本語はメイリオ, 英数字は consolas を使ってます. 気に入ったサイズ設定を見つけるまでに苦労したんですが, その分とても気に入ってます. つべこべ言わずに紹介しましょう.
;;------------------------ ;; メイリオ フォント設定 ;;------------------------ (w32-add-font "meiryo-consolas" nil) (w32-change-font "meiryo-consolas" '((spec ((:char-spec ascii :height 105) strict (w32-logfont "Consolas" 0 -12 400 0 nil nil nil 0 1 3 49)) ((:char-spec ascii :height 105 :weight bold) strict (w32-logfont "Consolas" 0 -12 700 0 nil nil nil 0 1 3 49)) ((:char-spec ascii :height 105 :slant italic) strict (w32-logfont "Consolas" 0 -12 400 0 t nil nil 0 1 3 49)) ((:char-spec ascii :height 105 :weight bold :slant italic) strict (w32-logfont "Consolas" 0 -12 700 0 t nil nil 0 1 3 49)) ((:char-spec japanese-jisx0208 :height 105) strict (w32-logfont "meiryo" 13 -12 400 0 nil nil nil 128 1 3 49)) ((:char-spec japanese-jisx0208 :height 105 :weight bold) strict (w32-logfont "meiryo" 13 -12 700 0 nil nil nil 128 1 3 49)) ((:char-spec japanese-jisx0208 :height 105 :slant italic) strict (w32-logfont "meiryo" 13 -12 400 0 t nil nil 128 1 3 49)) ((:char-spec japanese-jisx0208 :height 105 :weight bold :slant italic) strict (w32-logfont "meiryo" 13 -12 700 0 t nil nil 128 1 3 49))))) (set-face-attribute 'variable-pitch nil :font "meiryo-consolas") ;;============== ;; フレーム設定 ;;============== ;;------------------ ;; 初期フレーム設定 ;;------------------ (setq default-frame-alist (append (list '(foreground-color . "black") '(background-color . "LemonChiffon") '(background-color . "gray") '(border-color . "black") '(mouse-color . "white") '(cursor-color . "black") '(font . "meiryo-consolas"); TrueType '(width . 80) '(height . 40) '(top . 0) '(left . 100)) default-frame-alist))
ここでメイリオと consolas フォントについて. Vista や 7 には 標準で付属しているのですが, XP 等には別途インストールする必要があります. 私は XP では Visual Studio Express (Microsoft が提供するフリーの開発環境) と追加の consolas フォントパック(こちらもフリー)を入れていました. どちらも Microsoft Download Centerから辿れます.
最後に, 私の .emacs 設定を公開しちゃいます. リンクを御覧ください. 今まではさまざまな elisp に対して細かく設定を記述していましたが, Netinstall を使ってパッケージをインストールした場合, パッケージ毎に 自動設定ファイル(auto-autoload.el)が作られ, これが meadow 立ち上げ時に 自動的に読み込まれます. このため .emacs で行うべき設定は非常に少なく なっています. ちなみに設定の読み込み順は
(1) ~/.emacs, (2) /meadow/packages/lisp/default.el, (3) /meadow/packages/pkginfo/[packagename]/auto-autoload.el
です. もし, auto-autoload.el で勝手に設定されるのが嫌な場合は .emacs に以下を記述すれば OK です.
(setq inhibit-default-init t)
尚, auto-autoload.el の仕組みやパッケージの内容についてを詳しく知りたいときは Meadow3.00パッケージ一覧のページ以下をお読みください.