Meadow(メドウ)の達人(導師)を目指す意味合いで '魔導士への道' と命名しました. 'まどうし' と書いていますが無理矢理 'めどうし' と読んでください.
自宅と会社で快適に Meadow を使っていましたが, 2009 年末に会社の PC が クラッシュ. (Windows がクラッシュと言った方が良いかも.) あれこれリカバリを 試みたんですが全くダメ. 結局クリーンインストールしました.
もちろん Meadow も再設定. クラッシュ前は Mew の master-password 機能を 使って, 複数のメールアカウントのパスワードを一元管理をしていたんですが, 何故か同じ環境が作れません. 前回 master-password 環境を導入した際も, あちこちの Web 情報を元に, カット・アンド・トライを繰り返して やっと達成したのですが, 今回もまた同じ事を繰り返すことに... これに懲りて今回はメモを残すことにしました.
過去の目次(魔導士への道 III)
過去の目次(魔導士への道 II)
過去の目次(魔導士への道 I)
前回と同じく Netinstall を用いて インストールを行います. ここで単純且つ重要なポイントは Meadow 3.00 版を 入れることです. 今回何故か 2.10 版をインストールしてしまい大きく躓きました.
今回選択したパッケージは, ABC 順に apel, gnuserv, html-helper-mode, imagemagick, Meadow(本体), mew, migemo, misc, mule-ucs です. ちなみに インストールした Mew のバージョンは 5.1-1 でした. Mew 自体は現在 6.2 が リリースされていますが, master-password 機能は Mew 5.1 から実装されているので とりあえず良しとします.
さて本題の master-password 機能を使ったメールパスワードの一元管理方法です. ポイントは 2 つのプログラム GnuPG と fakecygpty です.
GnuPG は Cygwin のパッケージから選んでインストールします. 結構 見付けづらいのですが Utils カテゴリの中にあります. 適切にインストールされれば gpg.exe が $(Cygwin ディレクトリ)/bin 以下に置かれます. 念のため ここに Path が通っていることを確認しておきましょう. 動作確認をするならば 以下を実行してみましょう.
$ gpg --gen-key
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 立ち上げ時のマスターパスワード入力だけでアクセス可能になります. うーん楽チン.
2010 年のゴールデンウィークに再び Meadow のインストールの機会が訪れました. 私は相変わらず日本語入力に「かんな(Canna)」と「YC」の組合せを用いており, この環境構築のためには, 以前 と同じく, Cygwin を入れて, Canna をコンパイルすると言う手順が必要です. Canna は何度もコンパイルしており, その実行環境をコピーするだけと言う 手も有りなのですが, コンパイルの時に用いた Cygwin のバージョンが随分 上がっていることを考えると, 再コンパイルした方が良さそうです.
この機会にと Canna のソースを チェックするとバージョンが 3.7p3 になっている. 更にデフォルトで Cygwin の コンパイルに対応している様子. では早速と思いつつふと見ると, Cygwin JE で コンパイル済の物が用意されている! 更に cygrunsrv と使えばサービス化も 可能なように拡張されている. これは利用させて頂くしかない.
全て用意されているなら何も考えずにあっさり. を期待していましたが, あちこちで問題が... 最終的に以下の手順で何とか動かしています.
黙って Cygwin の setup.exe を実行して Cywin JE に繋ぐと
Unable to get http://cygwin-je.sourceforge.jp/cygwin_je//setup.bz2.sig \ from <http://cygwin-je.sourceforge.jp/cygwin_je/>
と言って怒られます. つまり setup.bz2.sig がないからと言って接続拒否されます. ここは一番(DOS の)コマンドプロンプトから setup.exe を立ち上げましょう.
最近の Windows ユーザにはコマンドプロンプトと言っても馴染みが無いかも. 「スタート」-「アクセサリ」-「コマンドプロンプト」で立ち上げるか, 「スタート」メニューの「検索の開始」や「ファイル名を指定して実行」欄から 'cmd' と入力して立ち上げます.
DOS 画面が立ち上がったら setup.exe のあるディレクトリに移動し,
> setup -X
を入力します. 引数の '-X' が味噌です. これで setup.bz2.sig が無い問題は 無視してくれます. ちなみに setup.exe のオプションは他にもいろいろあります. '-h' オプションで確認できます.
Command Line Options: -D --download Download from internet -L --local-install Install from local directory -s --site Download site -O --only-site Ignore all sites except for -s -R --root Root installation directory -P --packages Specify packages to install -C --categories Specify entire categories to install -p --proxy HTTP/FTP proxy (host:port) -q --quiet-mode Unattended setup mode -M --package-manager Semi-attended chooser-only mode -h --help print help -l --local-package-dir Local package directory -r --no-replaceonreboot Disable replacing in-use files on next reboot. -X --no-verify Don't verify setup.ini signatures -n --no-shortcuts Disable creation of desktop and start menu shortcuts -N --no-startmenu Disable creation of start menu shortcut -d --no-desktop Disable creation of desktop shortcut -K --pubkey Path to extra public key file (gpg format) -S --sexpr-pubkey Extra public key in s-expr format -u --untrusted-keys Use untrusted keys from last-extrakeys -U --keep-untrusted-keys Use untrusted keys and retain all -A --disable-buggy-antivirus Disable known or suspected buggy anti virus software packages during execution.
話が脱線しました. Cygwin Setup を立ち上げたら, Download Site の選択画面まで 進みます. 次に User URL の欄に Cygwin JE の位置 'http://cygwin-je.sourceforge.jp/cygwin_je/'
を入力し, 'Add' ボタンを押します. (入力の際にハイフンとアンダースコアの違いに 注意してください.)リストに加わった 'http://cygwin-je.sourceforge.jp' を 選択し次へ進むと, 無事に接続でき, パッケージリストが表示されます. ここで Canna を選んでインストールすれば OK.
ちなみに Canna は System カテゴリに入っています. また Canna を選択すると libCanna も自動的に選択されます. (こちらも必要です.) このあたりの Packages の仕組みを知りたければ, 'http://cygwin-je.sourceforge.jp/cygwin_je/setup.ini' を覗いてみてください.
cannaserver はサービス化も可能とのことなので, 直接立ち上げる必要は 無いかも知れませんが, まずは動作確認のためにも, コマンドラインからの 起動を確かめましょう. 引数 '-net' を付けることがポイントです. これが無いと, UNIX ドメインでの接続はできますが TCP 接続は受け付けません. TCP 接続ができないと後述の YC からの接続ができませんでした. (下記の例で, 実行ファイルのディレクトリに PATH が通してあれば PATH の記述は 省略できます.)
[DOS プロンプトの場合] > C:\cygwin\usr\sbin\cannaserver -inet > C:\cygwin\bin\cannastat -cs localhost Connected to localhost Canna Server (Ver. 3.7) No clients [Cygwin bash の場合] $ /usr/sbin/cannaserver -inet $ /usr/bin/cannastat -cs localhost Connected to localhost Canna Server (Ver. 3.7) No clients
ここまで来たら一応 batch ファイルからの立ち上げができるように設定しておきます.
[canna.bat] @echo off C:\cygwin\usr\local\canna\bin\cannaserver.exe
ここまで来たら一応 batch ファイルからの立ち上げができるように設定しておきます. もし, 辞書に手を加えたい場合は, 以前の 記述の '辞書の入れ換え' 部分を参照ください. 今回, 辞書は '/var/lib/canna/dic/' に置かれています. アイコンが欲しい場合も以前のもの をお使いください.
ここまで来たら後は 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 "(){}<>")
最後に cannaserver のサービス化です. これにはここまでのファイルの他に cygrunsrv.exe が必要です. which や whereis コマンドで cygrunsrv を 探してください. /bin (= /usr/bin) に見つかれば OK. 無ければ setup.exe を使ってパッケージをインストールしてください. Admin カテゴリにあります.
cygrunsrv が用意できたら, まずコマンドプロンプトを立ち上げます. Cygwin bash 環境でも大丈夫だと思いますが, 私は DOS プロンプトで作業しました. ここで注意としては, サービスの登録には管理者権限が要求されます. そのため Windows Vista の場合は管理者権限でコマンドプロンプトを立ち上げる 必要がありました. 後は以下のコマンドを入力するだけです. (ほとんど Cygwin JE の Canna のリリースノートに書かれている通りです.)
> C:\cygwin\bin\cygrunsrv.exe -I cannaserver -d "CYGWIN cannaserver" -p C:\cygwin\usr\sbin\cannaserver.exe -a "-inet -k" (実際には 1 行で入力ください.)
コマンドラインで開始/停止を行うには, 以下を実行します.
[開始] > net start cannaserver [停止] > net stop cannaserver
サービスは Windows の管理ツールを使って確認可能です. (Vista の場合,「スタート」-「コントロールパネル」-「管理ツール」-「サービス」) ここからサービスの開始/停止も可能です. ここでスタートアップの種類が [自動] に なっていれば, 次回から WIndows 起動時に自動的に立ち上がります.
ちなみにこの管理ツールからサービスの取り消しはできないようです. 登録ミスなどで登録を取り消したい場合は sc.exe コマンドを利用します.
[登録名の確認] > sc query cannaserver [停止] > sc delete cannaserver
これで設定完了と言いたいところですが, まだ問題が... 実際にシステムを 再起動してみるとうまく立ち上がりません. シャットダウンの際に UNIX ドメインソケット /tmp/.iroha_unix/IROHA が残ってしまうのが原因です. スクリプトを作って cannaserver 立ち上げ前に IROHA ファイルを消すのも 手ですが, ここまで来て何とも格好悪い方法です. 終了時に上述の net stop cannaserver が実行されれば全く問題なくスマートなのに. 悩んだ挙げ句シャットダウンスクリプトで対応することにしました.
以下, Vista の場合の方法です. 「スタート」-「検索の開始」ボックスに gpedit.msc を入力. これでローカルグループポリシーエディタが立ち上がります. その中で「コンピュータの構成」-「Windows の設定」-「スクリプト」- 「シャットダウン」と選択して行き, スクリプト net stop cannaserver を追加登録します.
以上の設定で, (今のところは)問題なく動いています. もっと良いやり方があれば 是非お教えください. (きっとあるはずです)
by うらのふ