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-27

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

前回の続き。

『openwinにログインしなくてもteratermからのtelnetだけで、ATOKが使えるように。』を解消する方法。

前回のおさらい

先ずはlocal IPC(unix domain socket)経由でのATOK利用を確認する。

socketとして /tmp/.iiim-(ユーザ名)/:0.0 を作成するのだが、作り方がよく判らないので一先ずコンソールからopenwinにログインする。

ログインすれば /usr/openwin/lib/locale/common/S505multi が実行され、スクリプトの中で /tmp/.iiim-(ユーザ名)/:0.0 が作られる。

あまり格好いい方法ではないが動作確認だけなのであまり気にしない。

無事作られたらemacsを起動して動作確認。

emacs

起動したらCtrl-\押下

変換

一旦 /tmp/.iiim-(ユーザ名)/:0.0 が作られれば、Xからログアウトしてもちゃんと残っている。

無事/tmp/.iiim-(ユーザ名)/:0.0 が作られたら、openwinからログアウト。

telnet経由でログインし、もう一度emacsの動作確認。

iiimd起動。(動作確認目的なのでtruss経由で起動してログを採っている)

miki@saki$ truss -fae -o /export/home/miki/iiimd.log iiimd -udsfile /tmp/.iiim-miki/:0.0 -vardir /export/home/miki/

truss無し起動の場合。

miki@saki$ iiimd -udsfile /tmp/.iiim-miki/:0.0 -vardir /export/home/miki/

emacs起動。

emacs

起動したらCtrl-\押下

変換

おそらく、「辞書ファイルが設定されていません」になるはず。

あ連R漢EEE:**-F1  .emacs         All L1     (Emacs-Lisp)-----------------------
::  :辞書ファイルが設定されていません

個人設定ファイル置き場を作成

truss経由で実行した場合はCtrl-Cでtruss停止。

trussで採ったログiiimd.logの中から怪しい部分を探し出す。

miki@saki$ grep mkdir iiimd.log
1110/2:         mkdir("/var/lib/iiim/le/atokx2/users/", 0755)   Err#13 EACCES [ALL]
1110/2:         mkdir("/var/lib/iiim/le/atokx2/users/miki/", 0700) Err#2 ENOENT

↑ここ。ここが怪しい。

自分の権限でディレクトリが作れずエラーになっているっぽいのでrootで作っておく。

miki@saki$ sudo mkdir -p /var/lib/iiim/le/atokx2/users
miki@saki$ sudo chmod 755 /var/lib/iiim/le/atokx2/users
miki@saki$ sudo mkdir -p /var/lib/iiim/le/atokx2/users/miki
miki@saki$ sudo chmod 700 /var/lib/iiim/le/atokx2/users/miki/
miki@saki$ sudo chown miki:hello /var/lib/iiim/le/atokx2/users/miki/

結果。

miki@saki$ ls -l /var/lib/iiim/le/atokx2/users/
合計 2
drwx------ 2 miki hello 2 2009-04-27 19:33 miki

ここでまたemacsを実行して変換。

しかしまだ「辞書ファイルが設定されていません」になるはず。

/var/lib/iiim/le/atokx2/users/miki/の中にファイルが2つ出来ていることを確認。

miki@saki$ ls /var/lib/iiim/le/atokx2/users/miki/
atokrh.bin  atokx2.aen

個人の設定ファイルを設定

atokx2.aenは個人設定ファイルらしいのだがサイズは0。

きちんと中身のある個人設定ファイルが何処にあるかというと、、、ここ。

$HOME/.iiim/le/atokx2/users/miki
miki@saki$ ls
a17canna.sty       atok17hg.dxp.plnk  atok17nm.dic.plnk  atokeb.dar.plnk
a17msime.sty       atok17hk.dxp.plnk  atok17p.sty        atokkh.dar.plnk
a17wnn.sty         atok17ht.dxp.plnk  atok17tk.dic.plnk  atokrh.bin
atok17.dic.plnk    atok17jl.dic.plnk  atok17tr.dic.plnk  atokx2.aen
atok17.sty         atok17ke.dic.plnk  atok17u1.dic       facem17.dic.plnk
atok17bn.dxp.plnk  atok17kg.dic.plnk  atok17y7.dic.plnk  facemi17.dic.plnk
atok17ch.dxp.plnk  atok17ks.dxp.plnk  atok17yc.dic.plnk
atok17ci.dic.plnk  atok17ky.dxp.plnk  atokau.dar
atok17eb.dic.plnk  atok17n.sty        atokci.dar.plnk

自分のホームの.iiim/のにあった。

実際の在処$HOMEとiiimdが探しに行く/var以下との差異を埋めるためにシンボリックリンクを張って対処。


さっき作ったディレクトリを削除。

$cd /var/lib/iiim/le/atokx2/users
$sudo rm -rf miki

シンボリックリンク作成

$ sudo ln -s /export/home/miki/.iiim/le/atokx2/users/miki/ miki

今度こそemacsで動作確認

念のため今までのtrussをkillしておく。

$kill truss

iiimdが起動していなかったらiiimdを起動

$ps -ef |grep iiim

iiimd起動

$iiimd -udsfile /tmp/.iiim-miki/:0.0  -vardir /export/home/miki/
emacs起動
Ctrl-\でATOK起動

一段落

一応(socket作りのためにXsunへのログインは行っているが)telnet経由でのemacs+ATOK利用は出来た。

IIIMP通信経路変更

local IPC(unix domain socket)経由だとsocketの作り方が判らない。

そこで、前バージョンのようにinet domain(port:9010)経由に変更する。


/etc/iiim/iiim.xml.confを編集

コメントの位置を変更し、行10~13のtcpポートを有効にする。

     1  
     2  <iiimf>
     3      <server>
     4          
  ★10          <listen type="tcp">
  ★11              <hostname>localhost</hostname>
  ★12              <port>9010</port>
  ★13          </listen>
    14          

iiimdの起動方法を変更する。

前段までに起動したiiimdが残っていたら一旦kill

$pkill iiimd

iiimd起動

iiimd -port 9010

起動確認

miki@saki$ ps -ef |grep iiimd
    tomo  1198     1   0   20:22:53 pts/4       0:00 iiimd -port 9010

netstatでも確認。

miki@saki$ netstat -a
TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q    State
localhost.9010             *.*                0      0 49152      0 LISTEN
localhost.54143      localhost.9010       49180      0 49152      0 TIME_WAIT

iiimecfの設定を変更

$HOEM/.emacsを書き換え。

unix domain socket用をコメント化してinet dmain port9010用を追加。

「共通」以下はそのままで。

;;;
;;; iiimecf + ATOK
;;;
; unix domain socket用
;(setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:0.0")))
; inet domain port9010用★
(setq iiimcf-server-control-hostlist '("localhost:9010"))
; 共通
(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)