Hatena::Groupsoreni

Solaris娘。

         , ‐──..、─-.、
        /::::::::::::::::::::;、::::::::ヽ
       /:::::::ノノ:::::::::::::| \::::::ヽ
       /:::ノ;::/;;ノ::ノ:ノ  ヽ:::::ヽ
    ☆ノハヽo ⌒    ⌒ Y:::|
    川'v') ┳     ┳ ih|
     人'Υ ノi,          !リ
    (^)∪∪(^)    V    ノ/
      /' ̄| レ`     _,.ィ:((
     /   | .|、    √ヾ:::);:)
    /  ,' l .|~゙'-、__,,/  (:::( \
    /  /  | |    /__ ):ノ、  ヽ
──(   ̄ ̄ ̄| ̄ミ)⌒)  ̄ ̄   )──
    ` ───'" ̄ ⌒──── ´

ここは、モー娘。&OGの85年組の私的YESサイトです。
ここは、モー娘。六期メンバーのファンサイトです。
ここは、モー娘。&OGの道産子応援サイトです。

駒澤体育館座席の情報を求めて来たかたはこちらの拾い物をどうぞ。
Solaris10 + emacs + iiimecf + ATOKの設定は04月21日/27日の日記をどうぞ。
カジュアルディナーショーレポ 藤本美貴 / 松浦亜弥 / 石川梨華 1 2 3

2009-04-21

Solaris10 + emacs + ATOK 22:35  Solaris10 + emacs + ATOK - Solaris娘。 を含むブックマーク はてなブックマーク -  Solaris10 + emacs + ATOK - Solaris娘。

emacsでの日本語入力にSolaris10付属のATOKを使う方法。

teraterm経由。

f:id:windom3:20090421225137j:image

Gnomeデスクトップ。

f:id:windom3:20090421225136j:image

対象となったSolarisのバージョン

miki@takikawa$ uname -a

SunOS takikawa 5.11 snv_110 sun4u sparc SUNW,Sun-Blade-1000 Solaris


miki@takikawa$ cat /etc/release

Solaris Express Community Edition snv_110 SPARC

Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.

Use is subject to license terms.

Assembled 09 March 2009

対象のiiimfバージョン

miki@takikawa$ pkginfo |grep iiim

system SUNWiiimf Internet/Intranet Input Method Framework Package (Usr)

system SUNWiiimf-ja-anthy IIIMF - Japanese Language Engine (Anthy)

system SUNWiiimf-root Internet/Intranet Input Method Framework Package (Root)


miki@takikawa$ pkginfo -x SUNWiiimf

SUNWiiimf Internet/Intranet Input Method Framework Package (Usr)

(sparc) 12,REV=3527.2009.03.06.05.11

ソースの入手

インストールされているiiimfのソースコードを入手する。

方法は、佐山さんのブログの通り。

http://blogs.sun.com/sayama/entry/iiimf_r12_2_build

svn co -r3527 http://svn.openi18n.org:8081/repos/im-sdk/trunk im-sdk

iiimecfインストール

svnを実行するとim-sdkディレクトリにソースツリーが取得出来る。

emacsクライアントのディレクトリ im-sdk/iiimecfへ移動。

miki@takikawa $cd im-sdk/iiimecf

README.jaより

182:o ... Unix Domain Socketによる通信について

183:

184: version 22 以前のEmacs は、Unix Domain Socket (local IPC) を使用した

185: 通信はできません。IIIMECFには、パイプとUnix Domain Socketを変換する

186: udclient.c が同梱されています。version 22 以前のEmacsで Unix Domain

187: Socketを使ってIIIM server と通信する場合は、udclient.cをコンパイルし

188: て実行パスの通っている場所にインストールしてください。

189: (make-network-process 関数を持つUnix用のEmacsでは不要です。)

「version 22 以前」の意味がよく分からなかった。現在の最新はversion 23シリーズがあるってこと?

という訳で調べてみた。

emacsのソースを取って来る。

ftp://ftp.gnu.org/gnu/emacs/

emacs-22.1.tar.gz 37278 KB 2007/06/02 0:00:00

emacs-22.2.tar.gz 37788 KB 2008/03/26 0:00:00

emacs-22.3.tar.gz 38660 KB 2008/09/05 0:00:00


miki@takikawa$ grep make-network-process emacs-22.3/src/process.c

  • 22.3 emacs-22.3/src/process.c 内に有り
  • 22.2 emacs-22.2/src/process.c 内に有り
  • 22.1 emacs-22.1/src/process.c 内に有り

結論:バージョン22系列ならばOK。

ちなみにxemacsでは

  • xemacs-21.4.22 make-network-process無し
  • xemacs-21.5.28 make-network-process無し

なので難しそう。


Solaris付属のemacsのバージョン

miki@takikawa$ which emacs

/usr/bin/emacs


miki@takikawa$ /usr/bin/emacs --version

GNU Emacs 22.1.1

どうやらOKそうだ。

im-sdk付属のiiimecfインストール

README.jaの通り。

44:o ... Install方法

45:

46: iiimcf-comp.elを用いて、byte-compileを行ってください。

47: 以下のcommandにより、byte-compile出来ます。

48:--

49: emacs -q --no-site-file -batch -l iiimcf-comp.el

byte-compile

miki@takikawa $emacs -q --no-site-file -batch -l iiimcf-comp.el

インストール先ディレクトリを作る

既存のemacsのlisp格納先が/usr/share/emacs/site-lisp/なので、その下にiiimecfディレクトリを作る。

miki@takikawa $sudo mkdir -p /usr/share/emacs/site-lisp/iiimecf/

lispをコピー。

miki@takikawa $sudo cp lisp/*.el* /usr/share/emacs/site-lisp/iiimecf/

ホームディレクトリに.emacsを準備

またまたREADME.jaより。

158: .emacs 設定例

159:--

160: (setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:1.0")))

161: (when (and (= 0 (shell-command

162: (concat

163: "netstat --unix -l | grep -q " (car iiimcf-server-control-hostlist))))

164: (require 'iiimcf-sc nil t))

165: (setq iiimcf-server-control-default-language "ja")

166: (setq iiimcf-server-control-default-input-method "atokx3")

167: (setq default-input-method 'iiim-server-control))

168:--

netstatコマンドの実行結果を変数に入れ判定しているが、

linuxのnet-toolとsolaris付属のnetstatではコマンドライン引数と実行結果が異なる。

そのためこれをそのまま書くと判定でコケてしまうので、判定結果を直接書いてしまう。

;;; iiimecf + ATOK

(setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:0.0")))

;(when (and (= 0 (shell-command

; (concat

; "netstat --unix -l | grep -q " (car iiimcf-server-control-hostlist))))

(require 'iiimcf-sc nil t)

;)

(setq iiimcf-server-control-default-language "ja")

(setq iiimcf-server-control-default-input-method "atokx3")

(setq default-input-method 'iiim-server-control)

;)

.emacsを書いたら、emacs起動する。

miki@takikawa $emacs -nw .emacs

emacs起動後にCtrl-\を押してATOKと接続。

  • [No IM connected]EE-:---F1 .emacs All L1 (Emacs-Lisp

No IM connectedで接続失敗。

最終的な.emacs

SolarisのIPC

README.jaの設定例と異なり「:1.0」ではなく「:0.0」となる。

solarisでは0:0だということが↓で分かる。

miki@takikawa $ls -a /tmp/.iiim-miki/:0.0

/tmp/.iiim-miki/:0.0

ATOKの名前(?)

solarisのatokはatokx2相当だということがここ↓で分かる。

miki@takikawa $ls /usr/share/iiim/le/atokx2

/usr/share/iiim/le/atokx2

最終的な.emacs。

;;;

;;; iiimecf + ATOK

;;;

(setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:0.0")))

(require 'iiimcf-sc nil t)

(setq iiimcf-server-control-default-language "ja")

(setq iiimcf-server-control-default-input-method "atokx2")

(setq default-input-method 'iiim-server-control)

iiimdの起動

iiimdは /usr/openwin/lib/locale/ja/imsscript/S505multi で起動する。

なので、telnetでemacsを使うためには予めopenwinにloginしておかねばならない。かなり間抜けな状態。w

openwinにloginしてiiimdを起動しておかないと、emacs起動後にCtrl-\を押してもミニバッファにエラーメッセージが表示される。

make client process failed: ファイルもディレクトリもありません。, :name, IIIMP, :buffer, *IIIMP*, :family, local, :service, /tmp/.iiim-tomo/:0.0

今後の課題

  • openwinにログインしなくてもteratermのtelnetだけで、ATOKが使えるように。

これはS505multiの内容を.loginなり.profileなりに書き写せば可能?04/27の日記で解決。)

  • version 22 以前のemacs/xemacsでもATOK入力が使えるように。

iiimecf付属のユーティリティ udclient.c を使えとREADME.jaに書いてあるがまだ試していない。

link

  • 佐山さんのブログの中からIIIMFに関する部分

http://blogs.sun.com/sayama/entry/iiimf_r12_1_%E6%A6%82%E8%A6%81

http://blogs.sun.com/sayama/entry/iiimf_r12_2_build

http://blogs.sun.com/sayama/entry/iiimx%2Fiiimd_%E3%81%AB_log_level_%E3%81%A8_log_facilty

  • 自分と同じようにEmacs+IIIMECF+ATOKと格闘されている方

http://itline.jp/~svx/diary/?date=20071219

  • Solaris8でxemacs+ATOK

http://solaris.roguelife.org/usr/lib/locale/ja/atokserver/

  • trussの使い方 IIIMFの動作を調べるのに使った

http://iandu.s7.xrea.com/unimama/truss.html

http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/012strace.html