背景
メインのPCがiMacからMac miniに変わったところ、あまりの処理能力の低さにブチギレました。
研究室にはMac Proがあるため、計算力がほしい解析はそちらで行い、Mac miniはsshとYouTube専用とすることにしました。
sshに-Yオプションをつけることで、X11を持ちいてローカル側の画面にヒストグラムなどを描画することができます。これならばネットワークの帯域を食う画面共有を行う必要がありません。
ところがsshで入ってROOTからヒストグラムを描画させても、リモート側(Mac Pro)の画面に描画されてしまい、ローカルで見れません。
以下はその解決までの手順です。
環境
ローカル側
Mac mini(late 2014)
Mac OSX High Sierra 10.13.4
リモート側
Mac Pro(late 2013)
Mac OSX High Sierra 10.13.4
原因と対策
sshでうまくX11トンネリングができていない
リモート側の/etc/ssh/sshd_configのX11Forwading, X11DisplayOffset, X11UseLocalのコメントアウトをはずして値を設定する。
ローカル側の/etc/ssh/ssh_configのxauthのパスを確認する。brewで入れたリモート側のROOTはX11に対応していない
ソースをダウンロードしてきてビルドし直す。
cmakeのオプションで-Dcocoa=OFF -Dx11=ONを設定する。
結末
オプションをつけてビルドしたところ、無事にssh経由で描画できるようになった。
追記
vscodeもリモートで使えるようにした。
http://carrinova.com/vscode_xserver_remote_edit/
参考
X11のトンネリング
https://stackoverflow.com/questions/39622173/cant-run-ssh-x-on-macos-sierra
ROOTのビルド
https://root.cern.ch/building-root