ttt

getttyent

(FreeBSD) wineでPicasa2を動かしたら文字化けしたので、気合で修正

2008-10-07 22:24:56 | テレビ番組

FreeBSD上で、画像を管理するソフトで、ちょっと気の利いたのないかな?と思って、Picasa2をインストールしてみました。

つまり、Windows版のPicasa2をwineで動かす、ってことです。

そういえば、近年になってWineの完成度が上がってるって話を最初に聞いたのは、Linux版のPicasaが公開されたときのことで、そのPicasaは実はwineで動いてる、とのことでした。

その当時からはだいぶ時間が経過しているせいか、手元のFreeBSD7では、portsでインストールしたwineで、なんの工夫もすることなく、当たり前のように、Picasa2をインストールできちゃいました。

へー、すごいじゃん ・・・ いや

200810071

よく見ると、というか、よく見なくてもすぐに気がつきますが、明らかに、文字化けしてますね。トウフ(□□□□□)が表示されてます。

ネット検索してみると、Linux方面の情報っぽかったですが、~/.wine/system.reg にて、Tahomaというフォントを、日本語のフォントで置き換えてやればよい、という情報が何件か見つかります。

~/.wine/system.reg を書き換えてみました。

[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]

という行以降のところに

"Tahoma"="IPAPGothic"

と書く。

で、wineなPicasa2を起動。

・・・で、やっぱりトウフが表示されました。

LANG=Cで起動すると、Picasa2のメッセージが英語になるので、それならトウフにはなりません。
英語で使えばいいか~  っていう気にもなるんですが、FreeBSDだからダメなんだよ、とか思われると口惜しいので、一応、じたばた、あがいてみました。

wineでどんなフォントが使われているかは、lsofで調べればよい、という、ものすごい力技な情報が見つかりました。lsofについては、末尾の「おまけ」も参照のこと。

やってみます。

% lsof | grep wine | grep ttf
wine-pthr 51497 nhh  txt     VREG         0,86    2828124     526930 /usr/local/lib/X11/fonts/TrueType/mona.ttf
wine-pthr 51497 nhh  txt     VREG         0,86      85192     732676 /usr/local/share/wine/wine/fonts/tahoma.ttf
wine-pthr 51497 nhh  txt     VREG         0,86    2828124     526930 /usr/local/lib/X11/fonts/TrueType/mona.ttf
wine-pthr 51497 nhh  txt     VREG         0,86      85192     732676 /usr/local/share/wine/wine/fonts/tahoma.ttf
wine-pthr 51497 nhh  txt     VREG         0,86    2828124     526930 /usr/local/lib/X11/fonts/TrueType/mona.ttf

(以下略)

どうしてモナフォントなんだよ、というのは置いておくとして、tahoma.ttfという、本当にTahomaなフォントがインストールされているようです。portsでwineをインストールすると、tahoma.ttfもインストールされるようです。

どうやら、本当にTahomaフォントが存在する場合は、~FontSubstitutesのところに、フォントの置き換えを指定しても、無視されているみたいです。



~/.wine/system.reg をもう一度見てみると、

[Software\\Microsoft\\Windows\\CurrentVersion\\Fonts]

のところに

"Tahoma (TrueType)"="Z:\\usr\\local\\lib\\..\\share\\wine\\wine\\fonts\\\\tahoma.ttf"
"Tahoma Bold (TrueType)"="Z:\\usr\\local\\lib\\..\\share\\wine\\wine\\fonts\\\\tahomabd.ttf"

とか書かれているので、この2行を削除して、wineなPicasa2を起動してみると・・・ダメです。やっぱりトウフが表示されます。

なぜダメかっていうと、wineを終了して、もう一度system.regを見てみると、削除したはずの行が復活しているじゃないですか。

親切にも、自動的にフォントを発見して、登録してくれるらしいです。

仕方ないので、

/usr/local/share/wine/wine/fonts/tahoma.ttf

/usr/local/share/wine/wine/fonts/DONTUSE/tahoma.ttf
とか、別のディレクトリに移動したら、また自動的に発見されてしまいました。サブディレクトリじゃダメみたいです。

サブディレクトリ以外のところへ退避させてみました。

# ls -l /usr/local/share/wine/wine/fonts-
total 158
-r--r--r--  1 root  wheel  85192  9 26 09:57 tahoma.ttf
-r--r--r--  1 root  wheel  75364  9 26 09:57 tahomabd.ttf

これで、やっとトウフが直りました。

200810072


~FontSubstitutesにて、Tahomaフォントを置き換えているため、日本語フォントのファイルをシンボリックリンクなどでtahoma.ttfという名前で用意しておく必要はないようです。

■ 過去記事




■ おまけ lsofの代わりにfstatを使う


lsof
は、portsの/usr/ports/sysutils/lsof/ にあるんですが、いちいちインストールするのもめんどくさい。

FreeBSDには標準でfstatというコマンドがインストールされていて、lsofの代わりにfstatが使えるみたいです。

  • fstatの引数にファイルを指定すると、そのファイルを使っているプロセスが表示される ・・・ってことを今回初めて知りました。今まで、fstatだと、ファイルシステム単位でしかわからないのか、と思ってました。
  • TrueTypeフォントは、mmapされているので、fstatには、「-m」オプションが必要らしいです。

こんな感じになりました。

% fstat -m /usr/local/share/wine/wine/fonts/*
USER     CMD          PID   FD MOUNT      INUM MODE         SZ|DV R/W NAME
nhh wine-pthread 57975 mmap /usr     732649 -r--r--r--    7360  r  /usr/local/share/wine/wine/fonts/jvgasys.fon
nhh wine-pthread 57496 mmap /usr     732649 -r--r--r--    7360  r  /usr/local/share/wine/wine/fonts/jvgasys.fon
nhh wine-pthread 57496 mmap /usr     732651 -r--r--r--    6136  r  /usr/local/share/wine/wine/fonts/marlett.ttf
nhh wine-pthread 57105 mmap /usr     732649 -r--r--r--    7360  r  /usr/local/share/wine/wine/fonts/jvgasys.fon
nhh wine-pthread 57096 mmap /usr     732649 -r--r--r--    7360  r  /usr/local/share/wine/wine/fonts/jvgasys.fon

% fstat -m /usr/local/lib/X11/fonts/TrueType/*.ttf
USER     CMD          PID   FD MOUNT      INUM MODE         SZ|DV R/W NAME
nhh wine-pthread 57496 mmap /usr     526930 -r--r--r--  2828124  r  /usr/local/lib/X11/fonts/TrueType/mona.ttf
nhh wine-pthread 57496 mmap /usr     566533 -rw-r--r--  2890444  r  /usr/local/lib/X11/fonts/TrueType/ipagp.ttf
nhh wine-pthread 57105 mmap /usr     526930 -r--r--r--  2828124  r  /usr/local/lib/X11/fonts/TrueType/mona.ttf
nhh wine-pthread 57096 mmap /usr     566768 -rw-r--r--  2072060  r  /usr/local/lib/X11/fonts/TrueType/M+1VM+IPAG-circle.ttf

(以下略)


コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。