4/22/2016

[note] Ubuntu16.04LTS導入

またこの季節がやって来ました。半年に一度のUbuntuバージョンアップ、今回は2年ぶりのLTS版となる16.04LTSです。コードネームはXenial Xerus、饗応のリスさんです。意味不明なのは相変わらずではあるものの、ここ最近の明らかにファンタジーに遊んでいた例と比べると格段にわかりやすい方でしょうか。LTS版だから?前は信頼のおけるヤギさんでしたしね。

なお、LTS版という事で、14.04LTSから久しぶりにアップグレードを検討する向きも多いかと思われますが、14.04LTSから16.04LTSへの直接のアップグレードは可能になる旨予定されてはいるものの、現時点ではまだ実行不可な事に注意が必要です。リリースノートによると当該LTS間のアップグレードパスは3ヶ月後、7月にリリース予定の16.04.1で可能になる予定なんだそうで。

サポートを謳う以上、アップグレードに伴う諸々のバグや問題を十分に潰してからにしたいという事なんでしょう。特にLTS間に限れば2年も開いていますし、差分を引き継げるようにするのも大変なんでしょう。一応、14.10,15.04,15.10と逐次アップグレードをすれば当然今からでも上げられるのですが、手間もかかるしリスクも大きいしで、余程の理由がない限り避けたほうが無難でしょうね。

これに伴い、私の所にも一台14.04LTSがあるのですが、当然それのアップグレードはしばらくお預けとなりました。もっともLTS版は安定が命だし、14.04LTSのサポートもまだ十分残っているので、特に問題もないのですけれども。update managerを立ち上げて、14.04LTSだけ何時まで待っても始まらないのには少し気持ち悪さと不安を感じた次第です。Release Noteはよく読むべきでした、と反省しきり。

一方、15.10からのアップグレードはいつもの通りです。update managerの設定で、"Ubuntuの新バージョンの通知"を"すべての新バージョン"に設定して、アップグレード可能な旨ポップアップ表示されたら適用するだけ。サーバ・クライアント含め4台程アップグレードしましたが、それぞれ一時間前後で完了し、特に大きな問題はなし。不要になったパッケージにpython関連がごっそり載っているのに少し驚いた(pythonのバージョンが2から3に変わったため)のと、何故か存在しない設定ファイルを置換する旨警告が出て差分も空白というのがあって理解に苦しんだものの置き換えを選択しても特に問題は無い様子だったのに戸惑ったり、Braseroとか幾つか標準アプリにリストラがあって驚きはしましたけれども、その程度です。

gtk等GUI周りも特に大きな問題はなく、概ね良好。ただ、一部挙動が変わっているところも。特にIME周り。私はfcitx-mozcを使っていて、全角/半角キーでOn/Offを切替える設定にしているのですけれども、GUI版のemacsで以前は特に設定せずとも他のアプリと同様に切替出来ていたのが、デフォルトでは出来なくなっていました。切り替わりません。仕方なく暫定的にemacs-mozcを入れた上で.emacsを編集してfcitxを経由せずにmozcを使う設定にする事で日本語入力可能にしていますが、一々ウィンドウ内部に候補表示を割り込ませたりするせいかレスポンスが今ひとつで、誤入力が頻発するのが気に入りません。なので以前と同じようにする方法を探しているのですが、それは今の所まだ不明。うーん困った。使えなくはないんですけどね。emacs以外はアップグレード前と変わりないのだから、emacs側の問題だとは思うんですが。(追記:これは勘違いで、IM側の問題だったようです)

ともあれ。見た目とか微妙に変化はありますが、挙動自体はLTS版らしく安定しているようで一安心です。引き続きこの調子で、14.04LTSからの直接アップグレードも同様にすんなり行けるよう、周到な準備がなされる事を願いたいところです。というわけで、今回はひとまずこれでおしまい。

<追記:emacsでfcitxが使えない現象の修正方法>

emacsでfcitxが使えない点は頑張ってworkaroundに勤しみました。色々と調べた結果、アップグレード後にも環境変数が一部不適切で、
 XMODIFIERS=@im=ibus
になってしまっているのが原因(の一部)のようです。16.04LTSではfcitxが標準なのでバグですね。これを、fcitxに戻してやればいいわけです。

具体的には、環境変数を
 export XMODIFIERS=@im=fcitx
等としてやれば元通り。ちなみにtcsh等Cシェル系の場合は下記。
 setenv XMODIFIERS @im=fcitx

暫定で適用したemacs-mozcはインライン入力出来るのはいいんですが、私のようなかな入力派には駄目なのです。というのも、ローマ字入力を標準として想定しているらしく、かな文字入力の時には一旦ローマ字に変換してからmozcに渡される仕様みたいで、そのためにかな入力で速く打つと誤って途中の英文字が入力されたりして誤入力・誤変換が頻発するんです。濁点が`になったり。一文打つのにどれだけ打ち直しさせるのって位で、そうでなくとも候補のインライン表示等でラグが激しいところにこれでは、とても話になりません。しかしこれで元に戻りました。やれやれです。おそらく直ぐに公式でも修正されるんでしょうけれども、そんなの待ってられなかったのです。一安心。

しかし、起動時に自動適用する設定はまだ適切な方法が見つかっていません。というのも、上記環境変数設定を.bashrcとか.xinputとかに入れて起動すると、fcitx自体が起動しないようなのです。emacsはおろか、他のアプリも含めIMが全く使えなくなります。なので、暫定的に起動後に上記変数設定を別途行うようにして回避していて、とりあえずはそれでいいのですが、とても適切な方法とは思えません。困ったものです。LTS版なのに。。。

その後、どうにも気持ち悪いので何とかならないかと、さらに色々とfcitx-diagnoseの出力結果を見ながら試してみたところ、ibusをアンインストールして、かつ.xprofileに上記XMODIFIERSと併せてQT_IM_MODULE=fcitx,GTK_IM_MODULE=fcitxを設定した上でfcitxを手動起動すると上手く行きました。具体的には下記。(Cシェル系はsetenv)
 export QT_IM_MODULE=fcitx
 export GTK_IM_MODULE=fcitx
なお、ibusをアンインストールしておかないと、起動はせずとも邪魔をするのかこれらの変数を設定しても上手く行きません。という事でibus sucksというわけなのですが、でもibusって削除の時にシステムの設定周りをごっそり引き連れて消えていくんですよね。開発用のライブラリも含めて。使えなくはないんですけど、gnomeのシステム設定周りのインタフェースとかも消えるので、これはあまりよろしくありません。ibus自体クソな事は周知の通りなので、もう公式に外してくれればいいと思うんですが、難しいですかね。下手に組み込んじゃうからこんな事に。。。うーん。

さらにその後、ibusをアンインストールせずとも、下記でibusを無効化してから手動でfcitx起動、でも行けるらしい事が判明しましたのでメモ。なおこの場合、上記3件の環境変数設定は不要のようです。

>gsettings set org.gnome.settings-daemon.plugins.keyboard active false

fcitxは自動起動アプリに登録しておけばいいでしょう。まだすっきりしたわけではありませんが、とりあえずこれで一段落でしょうか。やれやれです。

<解決?>

さらに後日、別のPCで色々試してみたところ、何故か言語サポートの"キーボード入力に使うIMシステム"をibusにしておき、上記3変数を.xprofileに登録の上、fcitxを自動起動アプリに登録(~/.config/autostartに.desktopファイルを作成)してみたところ、emacsも含め正常にfcitx-mozcが使えるようになりました。他の一台では、同様に.xprofileの変数と自動起動を設定だけで、IMシステムはfcitxのままでOKでした。PCによって挙動も違います。わけがわかりません。どういうことなの。

<その他不具合>

後気になった点としては、今回アップグレードした内の一台(ノートPC)で、端末ウィンドウの操作中等に画面が頻繁にチラつく現象が起こっていて、とても気になります。あまり使わないPCなので運用上問題はないのですが、とても落ち着きません。早めに対処して貰えるとありがたいんですけれども。 
→その後配信されたアップデートを適用したところ、この問題は解決したようです。しかしアップデートされたパッケージを見ても描画に関係しそうなものなんてないんですけど、どういうことなんでしょう。libllvmとか関係ないだろうし、distro-info-data?うーん。まあ治ればなんでもいいんですけどね。

---後日追記

軽量化環境Lubuntuの16.04LTS版がリリースされて、ふと気が向いたので試しに使ってみました。数年ぶり。色々面倒なのは変わっていませんが、パフォーマンスはとても良いです。
[関連記事 [note] Lubuntuはやはり軽くて良いけれど]

[関連記事 [note] Ubuntu15.10導入]
[関連記事 [note] ubuntu 14.04LTS導入]