2016/04/30(土)ubuntu 16.04インストール(11) リモートデスクトップ(xrdp)
リモートのubuntuに何かさせたいとき、普通は単にsshで、GUIなアプリを使いたければssh -Xで済みますが、稀にデスクトップ全体を転送したいことがあります。それを実現するものとしては、windowsのリモートデスクトップとVNCが有名ですが、素のwindowsで使えるし速度も速いのでリモートデスクトップを愛用しています。
ところが、unityを採用している最近のubuntuは、リモートデスクトップやVNCのサーバになれません。代わりに標準で「デスクトップの共有」という機能があるのですが(プロトコルはVNC)、これは本体にログインしている状態でしか使えず、ログアウトしてしまうとリモートからログイン出来ないというとても不便なものです。
以下は、ubuntu 16.04に無理やりリモートデスクトップをやらせたときの記録です。
sudo apt install xrdpこれで、サーバそのものは簡単に入ります。しかし、全く動作せず、灰色の画面が出るだけです。動作させるには、リモートから接続した場合はunityを捨てて他のデスクトップを使うしかありません。gnome2の操作性で軽く、見た目を重視しているということで最近人気のある、「MATE」を入れてみました。「メイト」ではなく「マテ」と読むらしいです。
sudo apt install mate-desktop-environment sudo apt install mate-desktop-environment-extrasリモートでない本体の方でも使えるようになります。いったんログアウトするとデスクトップを選択するためのメニューが出るようになります。
さて、これだけではダメで、/etc/xrdp/startwm.sh を書き換えて、最終行の
. /etc/X11/Xsessionを消して
mate-sessionにします。これで一応動いたようですが、日本語キーボードにならず、またかな漢字変換も出来ません。
まず、キーボードを何とかします。これは検索するとたくさん見つかって、/etc/xrdp で
sudo wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini sudo mv km-e0010411.ini km-0411.ini sudo ln -s km-0411.ini km-e0010411.ini sudo ln -s km-0411.ini km-e0200411.ini sudo ln -s km-0411.ini km-e0210411.ini sudo systemctl restart xrdpとしたら直りました。
かな漢字変換は、fcitxがダメでibusにすれば大丈夫という情報がいくつか見つかりました。
sudo apt install ibus-mozc (すでに入っていた)/etc/xrdp/startwm.shのmate-session起動前に
export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS="@im=ibus" ibus-daemon -dを挿入したらうまく行きました。
ここまであれこれ入れると環境依存で不具合が出そうな気もしますが、参考になれば幸いです。
追記(2017年5月29日)
この方法を使ってNvidiaのGPUを積んだマシンをリモートで管理しようと思ったところ、なぜかNvidiaドライバを有効にするとxrdp経由で入ったときうまく動かず、firefoxが起動しなかったりかな漢字変換が起動しなかったりしていました。xorgドライバなら大丈夫なのですが、それだとcudaが使えず困ります。全く原因が分からずにしばらく放置していたのですが、偶然nvidiaドライバを入れたubuntuにVNC接続する際に一部のプログラムが起動しない(segmentation fault)場合の解決策
を見かけて解決しました。
cd /usr/lib/x86_64-linux-gnu/ sudo ln -s /usr/lib/nvidia-375/libGLX_indirect.so.0 .でうまくいきました。nvidia-375の数字の部分は今後のアップデートで変わっていく可能性があるので、そのときはまたやり直す必要があると思います。
2016/04/30(土)ubuntu 16.04インストール(10) IntlabとBLAS
Intlabは、INTLAB version 9をubuntu上のoctaveで使うの記事の通りで大丈夫です。
numpy, octave, Intlabなどは、高速なBLASが無いと本来の性能を発揮できないので、BLASを入れます。こちらも大体ubuntu 14.04でBLASを使うの記事と同じです。
sudo apt install libatlas-base-dev sudo apt install libatlas-doc sudo apt install libopenblas-base (既に入っていた) sudo apt install libopenblas-devこの時点で有効になっているライブラリを見ると、
$ sudo update-alternatives --config libblas.so.3 alternative libblas.so.3 (/usr/lib/libblas.so.3 を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/openblas-base/libblas.so.3 40 自動モード 1 /usr/lib/atlas-base/atlas/libblas.so.3 35 手動モード 2 /usr/lib/libblas/libblas.so.3 10 手動モード 3 /usr/lib/openblas-base/libblas.so.3 40 手動モード 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: $ sudo update-alternatives --config liblapack.so.3 alternative liblapack.so.3 (/usr/lib/liblapack.so.3 を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/openblas-base/liblapack.so.3 40 自動モード 1 /usr/lib/atlas-base/atlas/liblapack.so.3 35 手動モード 2 /usr/lib/lapack/liblapack.so.3 10 手動モード 3 /usr/lib/openblas-base/liblapack.so.3 40 手動モード 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:のような感じでした。14.04のときと違って、openblas版のlapackが入るようになってそれが有効になっていました。
更に、octave+openblas+intlabで丸め変更を検証の記事と同様に丸めの向きが正しく変わっているか検証すると、やはりマルチコアでopenblasは丸めの向きが変わりませんでした。そこで、先の記事と同様にopenblasを作り直します。
やり方は先の記事とほとんど同じですが、ひとつだけ注意点があって、Ubuntu 16.04 LTSをインストールする - Narrow Escapeの記事にあるように、16.04ではデフォルトでaptでパッケージのソースが落とせないようになっています。記事にあるように、
/etc/apt/sources.listでコメントアウトされているdeb-srcをコメントアウトを外す。 sudo apt updateを実行し、パッケージのソースを落とせるようにします。
後は14.04のときとほとんど同じです。
apt source openblas sudo apt build-dep openblas (必要なものを入れる。liblapack-picが入った) cd openblas-0.2.18/Makefile.ruleを編集し、コメントアウトされている
CONSISTENT_FPCSR = 1を有効化する。
dch -i で、version番号を進め、changelogを書く。 dpkg-buildpackage -b -uc -us cd .. sudo dpkg -i libopenblas-base_0.2.18-1ubuntu2_amd64.deb sudo dpkg -i libopenblas-dev_0.2.18-1ubuntu2_amd64.debこれで、マルチコアでもきちんと丸めの向きが変わるようになりました。
2016/04/28(木)ubuntu 16.04インストール(9) その他
sudo apt install openssh-serverこれでsshログイン出来るようになります。
sudo apt install gitgitはいまどきは必修科目ですね。(使えるとは言ってない)
後は個人的に必要なもの。
sudo apt install lv sudo apt install checkinstallこれは14.04の頃からあるのですが、bashでccとc++に対してファイル名補完が効きません。これを解決するため、/usr/share/bash-completion/completions/gcc の末尾の方の2行
cc --version 2>/dev/null | grep -q 'GCC\|Debian' && complete -F _gcc cc || : c++ --version 2>/dev/null | grep -q 'GCC\|Debian' && complete -F _gcc c++ || :を
cc --version 2>/dev/null | grep -q 'GCC\|Debian\|ubuntu' && complete -F _gcc cc || : c++ --version 2>/dev/null | grep -q 'GCC\|Debian\|ubuntu' && complete -F _gcc c++ || :のように修正しました。
また、ホームディレクトリに作られる「ダウンロード」などのディレクトリが日本語だと何かと不便なので、英語表記に直します。
LANG=C xdg-user-dirs-gtk-updateとして「Update Names」をクリックします。これでホームディレクトリが
examples.desktop テンプレート ドキュメント ピクチャ 公開 ダウンロード デスクトップ ビデオ ミュージックから
Desktop Downloads Pictures Templates examples.desktop Documents Music Public Videosに変わりました。
さらに、ふと目を離すとロックされてパスワードが要求されるのが嫌なので、システム設定(左側の歯車アイコン)→画面の明るさとロック で「ロックする」をオフに。ついでに、「サスペンドからの復帰時にパスワードを要求する」のチェックを外しました。
また、時計の表示が寂しかったので、上部の時刻をクリックし、時刻と日付の設定→時計 で、時計の表示設定の「曜日」と「月日」をクリックしました。
これで大体14.04で日頃使っている環境が出来た気がします。使ってみた感想は後ほど報告します。Intlabやopenblas関連についても後ほど試して報告します。
2016/04/27(水)ubuntu 16.04 インストール(8) マルチメディア系
sudo apt install ubuntu-restricted-extrasで、著作権上の制限があってインストーラには入れられないアプリケーション群が入ります。flashのプラグインもこれで入りました。
市販dvdの再生を可能にするには、以前は
sudo /usr/share/doc/libdvdread4/install-css.shでしたが、15.10から
sudo apt install libdvd-pkg sudo dpkg-reconfigure libdvd-pkgになりました。
その他、
sudo apt install handbrake sudo apt install vlc sudo apt install ffmpeg sudo apt install ffmpeg-docを入れました。ffmpegは14.04では消されていたのが復活したようです。
なお、画像ビューアはデフォルトで入っているものを使っています。名前が分かりにくいですが「eog」です。
2016/04/26(火)ubuntu 16.04 インストール(7) samba
sudo apt install sambaさて、以前は、
sudo apt install libpam-smbpassとすることによってunixパスワードとsambaパスワードを共有できてましたが、これはサポートされなくなったようです ( Ubuntu 16.04 | kofler.info の情報)。そこで昔ながらの方法に戻ってsamba用のパスワードの作成を行います。コマンドは昔はsmbpasswdでしたが最近はpdbeditに変わった模様。
sudo pdbedit -a kashihome directoryの共有をするため、/etc/samba/smb.conf で、
;[homes] ; comment = Home Directories ; browseable = noのコメントを外し、
# By default, the home directories are exported read-only. Change the # next parameter to 'no' if you want to be able to write to them. ; read only = yesを
read only = noに変更します。
sudo systemctl restart smbdこれで、homeがwindowsから見えるようになりました。