Vagrant の Ubuntu に Nuclide Server を入れて Atom からつないだ
Vagrant に入れた Ubuntu 上で Hacklang の勉強しようと思ったのがきっかけ。
Mac で Atom を Nuclide にして、 Remote Project っていう機能があることに気づいたのでやってみたところ、いろいろとあったのでまとめた。
Nuclide のインストール
公式サイトには、 Settings (⌘,
) の Install タブから nuclide-installer 探して入れろ、もしくは apm install nuclide-installer
で入れろ、って一番上に書いてあるけど、
しかしこれがいきなりどっちも罠で、こうして入った Nuclide は何故か死ぬほど重くて本当に使い物にならなかった。 Issue 見たらキレてる人がいて、完全に同感だった。
SLOOOOOW · Issue #232 · facebook/nuclide https://github.com/facebook/nuclide/issues/232
スロォォオオオって言いたくなる気持ち心の底からよくわかる。私の MacBook Pro はこの人のより新しいけど、スペックはだいたい同じで OS は完全に一致だった。
現時点でこの Issue は解決してないようだけど、「ソースからビルドすると軽くなるぜ」みたいな情報をどっかでみかけた(どこだか思い出せない)ので、そのとおりやってみたらさっきまでが嘘のように軽くなって本当にびっくりした。
rm -rf ~/.atom # キレるほど重い nuclide を消す。他にもプラグイン入れてるなら注意したほうがいいかも git clone git@github.com:facebook/nuclide.git cd nuclide ./scripts/dev/setup
手順は前出の Setup のページに書かれているとおりで、そのあと Atom を再起動して完了だった。あの異常な重さは一体なんだったんだ。
Nuclide Server のインストール
Node v0.12.0 以上が必要で、 Watchman もあるといいらしい https://github.com/facebook/nuclide/blob/master/pkg/nuclide/server/README.md#nuclide-server-prerequisites
ということでそれらのインストールから
Node.js のインストール
普通に apt-get install
しようとすると、 0.10 とかだったんで、まずい。
3 つの方法があるらしいと知った
Linux - Ubuntu でapt を使用してNode.js をインストールする3 つの方法(Ubuntu 15.04, Ubuntu 14.04.2 LTS) - Qiita http://qiita.com/TsutomuNakamura/items/7a8362efefde6bc3c68b
ここでは NodeSource が提供してる方法で 0.12 を入れた https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions
curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
しかし IPv6 に邪魔されてエラー。申し訳ないけど無効に http://l-w-i.net/t/ubuntu/ipv6_001.txt
# cat >> /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 # sysctl -p
そしてリトライしたらうまくいった
curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash - sudo apt-get install -y nodejs
$ node -v v0.12.7
Watchman のインストール
すんなりいけた http://facebook.github.io/watchman/docs/install.html#build-install
git clone https://github.com/facebook/watchman.git cd watchman git checkout v4.1.0 ./autogen.sh ./configure make sudo make install
Nuclide Server のインストール
git clone git@github.com:facebook/nuclide.git cd nuclide ./scripts/dev/setup --no-atom
ホームディレクトリに clone してたので /home/vagrant/nuclide/pkg/nuclide/server/nuclide-start-server
に起動コマンドが入った。
Atom からつなぐ
Add Remote Project Folder から
全項目を埋めていく
Vagrant には private_network を有効にして 192.168.33.10
をつけてある。 ssh の秘密鍵は、 /Users/yonex/.vagrant.d/boxes/*/1/virtualbox/vagrant_private_key
にあった( vagrant ssh-config
すると IdentityFile
に書いてあるからわかる)
そして、 OK
が、 Mac に Nuclide 入れたタイミングとサーバーに Nuclide Server 入れたタイミングが 1 週間くらい違ったせいか Version mismatch で怒られてうまくいかなかった
きびしい
ここでもう心が折れるかと思ったが、泣きのもう一回で先週 clone した nuclide を pull したうえでビルドしなおして、
cd nuclide
git pull
./scripts/dev/setup
Atom を再起動して再度 Add Remote Project Folder に挑んだところ、無事、接続に成功しました。
本当によかった
おまけ
IntelliJ IDEA を普段から使ってて、 Vagrant での開発も楽にできるようにサポートされているようなので、 IntelliJ IDEA (あるいは PhpStorm) に Hack plugin があれば一番よかったんだけど無いので Atom にチャレンジしたという経緯でした。 JetBrains たのむ
Hack Language Support in PhpStorm Postponed | JetBrains PhpStorm Blog http://blog.jetbrains.com/phpstorm/2015/06/hack-language-support-in-phpstorm-postponed/