2016-12-05

Linux用バイナリを使ったLibreOfficeで日本語入力が効かない問題

NetBSD/i386でLinux用バイナリを利用してLibreOfficeを使おうとすると日本語入力が効きません。Webで調べてみたところ、FreeBSDのLinuxエミュレーションでも同様の現象が起きているようです。
要するにLinuxエミュレーション環境のディレクト構造にある/usr/share/localeja_JP.UTF-8がないことが原因ということのようです。確かに/emul/linux/usr/share/locale/ja_JP.UTF-8はありませんでした。

そこで「/emul/linux/usr/bin/localedef -i ja_JP -f UTF-8 ja_JP.UTF-8」を実行してみたら、次のようなエラーが出てしまいました。
character map file `UTF-8` not found: No such file or directory
cannot read character map directory `/usr/share/i18n/charmaps`: No such file or directory
FreeBSDのLinuxエミュレーションではCentOS 6相当だそうですが、NetBSDではOpenSUSE 13.1が使われています。ロケールにある情報はLinuxのディストリビューションに依存しないような気がするので、Ubuntuあたりから拾ってきて入れてみようかと思います。

MATEのメニューエディタが動かない問題

MATEのコントロール・センターにある「メニューエディタ」が動きません。アイコンをクリックしても、何のウィンドウも開きません。メニューエディタの実体は/usr/pkg/bin/mozoというらしいので、コマンドラインから動かしてみました。すると次のようなエラーが出ています。
Traceback (most recent call last):
  File "/usr/pkg/bin/mozo", line 36, in <module>
    main()
  File "/usr/pkg/bin/mozo", line 32, in main
    app = MainWindow(datadir, version, sys.argv)
  File "/usr/pkg/lib/python2.7/site-packages/Mozo/MainWindow.py", line 54, in __init__
    self.editor = MenuEditor()
  File "/usr/pkg/lib/python2.7/site-packages/Mozo/MenuEditor.py", line 36, in __init__
    self.__loadMenus()
  File "/usr/pkg/lib/python2.7/site-packages/Mozo/MenuEditor.py", line 46, in __loadMenus
    self.applications.dom = xml.dom.minidom.parseString(util.getUserMenuXml(self.applications.tree))
  File "/usr/pkg/lib/python2.7/site-packages/Mozo/util.py", line 202, in getUserMenuXml
    menu_xml += "<MergeFile type=\"parent\">" + system_file +    "</MergeFile>\n</Menu>\n"
TypeError: cannot concatenate 'str' and 'bool' objects
そしてこの現象はバグ報告があがっているようです。githubに「Mozo refuses to start if mate-applications.menu is empty.」というエントリがあります。1週間ほど前にエントリされたようですが、まだ何の反応もありません。

バグ報告が出ているなら、いずれ解決されるでしょう。

NetBSD/i386上のFirefoxとThunderbirdを入れ直し

pkgsrcからFirefoxをThunderbirdを入れましたが、勘違いをして旧いバージョンを入れてしまいました。あらためて「pkgsrcから入れることができる」最新バージョンに入れ直します。当初はpkgsrcにあるwww/firefox45mail/thunderbird38を使いましが、これが間違いのもとでした。素直にwww/firefoxmail/thunderbirdを使ってインストールしておけば問題なかったのです。

pkgsrcからインストールした場合には、1)最新バージョンと言ってもMozillaが提供する最新版より旧い、2)安定公開版ではないので何が起きるかわからず怖いという問題があります。

pkgsrcのwww/firefoxを使うと「Firefox Nightly 49.0」が入りました。mail/thunderbirdでは「Thunderbird Earlybird 45.3.0」でした。これらのバージョンは、Microsoft Windowsなら2016年9月頃にリリースされたものです。

使用に耐えないようであれば、何か別の方法を考えることにします。今思いつく解決策はLinux用のバイナリを使うことです。しかしLinux用バイナリのLibreOffice5において日本語入力が出来ないという問題が発覚しているので、おそらく同じ問題に遭遇してしまうでしょう。

ただしこの日本語入力できない問題は大問題なので、できるだけ早く解決したいと思っています。そうすればFirefoxやThunderbird(もちろんLibreOfficeも)をLinux用バイナリで利用できるようになるはずです。

2016-12-02

NetBSD/i386環境にインストールしたアプリケーションの現状と問題点

NetBSD/i386にインストールしたアプリケーションを使ってみました。思いのほか上手くいっている点もありますが、かなり深刻な問題もあります。問題が解決できれば言う事ありませんが、スッキリと解決できなくても回避策が見つかれば良しとするべきかもしれません。ともかく問題点が見つかるたびに、その問題にのめり込んでいると先に進めないので、最終目標である「Windows Vistaの代替環境をNetBSD/i386+MATEで実現する」のゴールに向かって先を急ぐことにしましょう。どうやらこの調子では、何かするたびに問題が見つかりそうですが、それは記録しておいて、必要性の高いものから順番に解決していこうと思います。

 まずFirefoxとThunderbirdを起動してみました。問題は無さそうな気がします。メニューが英語ですが日本語のサイトも問題なく見られます。L10Nというパッケージを使うと日本語メニューに切り替えられます。その手順はpkgsrcでビルドしている最中に表示されたので、メモしておきました。メニューなどが日本語になってくれるのは助かりますが、それだけのことなのかもしれません。メニューやメッセージが英語でも気にしなければ、あえてL10Nを使う必要はない気がします。

LibreOfficeは問題なく起動しました。Linuxエミュレーション環境で動作しているとは言っても、動きが遅くなるわけでもありません。これなら問題ないと思っていたら、大問題が発覚しました。Mozcで日本語入力が可能になったので、日本語を入れようとしたらキー入力がMozcと連携せずにLibreOfficeに渡されているようで、全く日本語が入りません。何か設定すれば良い問題なのか、かなり根が深い問題なのか、さっぱり見当もつきません。深刻な問題ですが、現状を把握しておいて、先に進むことにします。

日本語入力はiBus-Mozcを利用していますが、上手くいきました。キーバインドや設定項目に不慣れな個所が残っていますが、おいおい慣れていくでしょう。日本語入力をおこなうにはiBusデーモンが起動している必要があります。MATEのコントロール・センターにある「自動起動するアプリ」で次の設定を追加して、自動的にデーモンが起動するようにしました。
【名前】iBusデーモン
【コマンド】/usr/pkg/bin/ibus-daemon -d
【説明】

XDMを使ってグラフィカル・ログインが出来るようになったと思っていたのですが、うまくいったり、駄目だったりします。原因を追究したいとは思いますが、問題を把握しておいて、調査はあとにするつもりです。

MATEは動いてはいますが、問題がないわけではありません。まだ全ての問題を把握しているわけではありません。わかっているところでは「コントロール・センター」のアイコンをクリックしても動作しないものがあります。ひとつは「ネットワークプロキシ」というもので、これをクリックするとコアを吐きます(ホームディレクトリにmate-network-pro.coreが作られる)。もうひとつは「メイン・メニュー」で、アイコンをクリックしても何も起きません(実態は/usr/pkg/bin/mozoらしい)。コアは出来ていませんが、何も起動してこないので、何がどうなっているのか不明です。これが動かないとMicrosoft Windowsでいうところのスタートメニューを変更できないので、ちょっと影響が大きいと思っています。他にも、日本語化が不完全で統一感がないとか、日本語で表示されていても見え方が不自然だとか、問題はいろいろあります。

MATEが決して完全とは言えませんが、だからと言ってMATEを捨てて、LXDEとかKDE、Gnomeに乗り換えれば済む問題とも思えません。他のデスクトップ環境に乗り換えたら、解決している問題もあるかもしれませんが、また別の問題が表に出てくるので、結局は何の解決にもならないのではないかと想像しています。あれこれ目移りせずにMATEで環境を構築する方向で進むのが、遠回りに思えても、最終的には最善の道ではないかと考えています。

マンハッタンヘンジ

もう随分前のことになりますがNHK BSプレミアムの「世界で一番美しい瞬間」という番組で「希望の夕日 想いこめるとき ニューヨーク」(2014年10月23日放送)というタイトルの放送がありました。ニューヨークのマンハッタン島の道路と平行に日没が見られる日があり、その光景が美しく、イギリスにあるストーンヘンジをもじって「マンハッタンヘンジ」と呼ぶのだそうです。なんとウィキペディアにも項目があがっているくらいですから、有名なのかもしれません(僕は知りませんでしたが)。

関連ブログもいろいろと見つかります。例えば「年2回しか見られない!米ニューヨーク「マンハッタンヘンジ」が幻想的」という記事によると、5月28日と7月12~13日前後が狙い目だそうです。また1番街の42丁目交差点がベストロケーションとのことです。ニューヨークの街路は碁盤目状なので、何処でも良いのではないかとも思いますが、方角以外にもビルの立地状況とか、いろいろあるのでしょう。

さてWebで利用可能な「日の出日の入時刻方角マップ」というものを見つけました。マップ上にポイントを置くと、指定した位置における指定した日付の「日の出」と「日の入り」の方角を表示してくれるものです。日本国内で使われるのを想定しているのだと思いますが、地図上では世界中の何処にでもポイントを置くことができます。

これを使ってマンハッタン島の1番街42丁目交差点にポイントを置いたところ、2017年5月25日と2017年7月17日が(晴れてくれれば)綺麗な日没が見られそうです。

同じようなことは日本でも出来そうな気がします。道路が碁盤目状の都市というと、北海道なら札幌が良いかもしれません。北海道は、旭川や帯広などほかの都市も碁盤目状になっているところが多いのですが、ビルが適度に建っていてくれないとストーンヘンジっぽくないかもしれません。

また京都や奈良、大阪なども、道路が碁盤目になっていますが、盆地になっていると山が邪魔になって、マンハッタン島のように綺麗な日没にはならない恐れがあります。

碁盤目状の道路に拘らず、神社の鳥居とか、有名なタワーなどを狙って写真を撮るのも面白いでしょう。

どういう構図を狙うのか考えてみると、アイディアはいくらでも湧いてくるでしょう。

NetBSD/i386環境にアプリケーションを追加インストール

dynabook SS SX/15Aを使ってNetBSD/i386環境の構築で、XDM経由でログインし、MATEデスクトップが利用できるところまで辿りつきました。利用頻度の高いアプリケーションをインストールし、また日本語入力も出来るようにしておきます。ここまで出来れば、最終段階には至っていないものの、ひとやまを越えたと言えるでしょう。

まずFirefoxとThunderbirdをpkgsrcからビルドします。どちらも本体とL10Nの両方をインストールします。pkgsrcで入るFirefoxやThunderbirdは最新版という訳ではありません。Firefox45というのはWindowsなら2016年3月頃のバージョンです。Thunderbird38も同様で、Windowsでは38.7が2016年3月にリリースされています。だいたい9ヶ月くらい古いバージョンということになります。Firefoxは特にバージョンアップが速く、Windowsでは既に50.0.2がリリースされています。バグ対応もあるかと思いますが、気になるのはセキュリティ対応でバージョンが上がっていることです。OSがWindowsかNetBSDかで脆弱性の影響が若干異なるとは思いますが、それでもセキュリティ問題は気になります。

次にLibreOffice5をインストールします。pkgsrcにあるのは、バージョン4系とバージョン5系です。バージョン4系はNetBSD自前でビルドすることになりますが、バージョン5系ではSuse Linuxの環境をNetBSD内に構築してLinux用バイナリを動かすことになります。Windows側で既にLibreOffice 5.1.6.2を利用しており、また今後Linuxバイナリしかないアプリケーションを利用する予定でもあったので、Linuxエミュレーション環境を使ったLibreOfficeをインストールすることにしました。

NetBSDのpkgsrcにあるLinuxエミュレーション環境はSuseということになっています。これが他のディストリビューション(Ubuntu、Fedra、CentOSなど)とどのように違うのか、またどのくらい同じなのか、よくわかりません。/usr/pkg/emul/linux以下にLinux環境のディレクトリ構造が出来上がっているのを見ると、Windows10 Anniversary UpdateでUbuntu環境を提供するためにC:\Users\FURUSAWA\AppData\Local\lxss\rootfs以下にディレクトリ構造が出来上がっているのと同じ構図です。エミュレーション環境を実現するために必要なファイルが置かれるのは仕方ないことですが、コマンド実行、ライブラリ参照、インクルードファイル参照などにおいて、うっかり間違えないように注意が必要になると思います。

日本語入力環境を用意しておかなければなりません。以前にSONY vaio PCG-SRX3/BDにNetBSD/i386環境を作りかけていたときにiBus-Mozcを使ったので、今回も同じにします。ビルドには約12時間かかりました。まだインストールしただけで設定などは行っていませんが、以前できていたので(若干トラブるかもしれませんが)問題ないでしょう。むしろ考えておくべきなのは、Windows側のMS-IMEで登録した単語をMozcで使うための環境をどのように構築するかです。もしかするとMozcで単語を登録して、MS-IMEに追加するような事態が発生するかもしれません。このあたりのフローを検討しておかなければならないと考えています。

最後に日本語フォントを追加しておきます。NetBSD/i386の標準的なインストールを済ませただけでも日本語は出ていますが、追加したフォントが本当に必要か、やはり不要となるのかは、今後の使い方次第だとは思います。pkgsrcから追加したのは次のフォントです。
  1. fonts/efont-unicode
  2. fonts/ipafont
  3. fonts/ipaexfont
  4. fonts/ja-sazanami-ttf
  5. fonts/vlgothic-ttf

2016-12-01

急行はまなす廃止後の青函移動

毎年年末年始は格安切符(普通列車限定の切符のこと)を利用して北海道に行っています。今年もそろそろ旅程を考えようと思っているところです。今年の春に北海道新幹線が開業したため、去年まで利用していた急行はまなすが廃止されてしまいました。代替として北海道新幹線を利用するしかないのですが、旅程を組むのが難しくなりました。

急行はまなすを利用していた頃は、青森を22時過ぎに出れば、翌朝6時頃には札幌に到着できました。そこから旭川方面に行っても良いし、帯広まで当日中に辿りつくことが可能でした。

北海道新幹線なら、はやぶさ33号で新青森を22時32分に出ると、新函館北斗には23時33分に到着します。しかしはこだてライナーの終電で函館に行く以外に手はありません。翌朝は函館8時18分の長万部行きに乗ると長万部に11時20分に到着します。ここから室蘭方面を目指すなら長万部発15時26分の東室蘭行きまで4時間ほど待つしかありません。小樽方面であれば長万部発13時16分の倶知安行きがあり、乗り継げば夕方18時前には札幌に到着できるでしょう。もちろん特急に乗れば待ち時間が短くなりますが、格安切符なので特急を利用することは出来ません。

もし新青森6時32分のはやて91号を利用したとすれば、新函館北斗には7時38分に到着します。函館発8時18分の長万部行きは、新函館北斗に8時43分に着くので、乗り継ぐことは可能です。しかしその後の旅程は全く同じになります。しかも、過去に利用していた経験では、これを利用する乗客は多く、函館を出発する時点で既に満席になっています。おそらく函館北斗で乗っても座れない可能性が高いと思います。

青森から函館に向かう場合、青森に宿泊して北海道新幹線の始発に乗るか、北海道新幹線の最終便で函館に向かい宿泊するかの、どちらかになってしまいます。 函館に宿泊すると言っても、はこだてライナーの函館到着は0時5分ですし、朝の長万部行きは8時18分発ですから、あまり時間に余裕はありません。ホテルに泊まってもゆっくりできません。

ここでフェリーを使うことも視野に入れてみます。国鉄時代には青函連絡船がありました。JRになって鉄道でつながるようになってからも、「津軽海峡フェリー」と「青函フェリー」という2社が青森と函館を結んでいます。しかもありがたいことに深夜便もあるので、寝ている間(ゆっくり寝ているほど長時間ではありませんが)に移動できます。

問題は青森側も函館側もフェリー乗り場が駅から遠いことです。深夜便を利用するつもりなら公共交通は無いでしょうが、時間に余裕があれば歩いても構わないと思っています。タクシーで移動すれば楽ですが、早めに駅に着いたところで、閉まっていて入れなければ悲惨です。