Edited at

[最先端から] WindowsでRuby/node環境 [逃げない]

More than 1 year has passed since last update.

10年近くMacに浮気してたんだがWindowsに帰ってきたよー

というわけで環境構築ではまった所をメモっていきます。

2017-04-11 Ubuntu 16.04.2 LTS で動作確認済み


Bash on Windows いまどこまで来てる?


.profile 読まれない

情報が錯綜しているけど、環境変数は .profile に書くのが正しい。 (.bash_profile は廃止された)

のだけど、ロードされない、なんでやねん。起動オプションが足りないらしい。

http://pachicoma.hateblo.jp/entry/2016/09/19/Bash_on_Ubuntu_on_Windows%E3%81%A7~/.profile%E3%81%8C%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%82%8C%E3%81%AA%E3%81%84%E4%BB%B6%E3%81%AE%E5%AF%BE%E5%BF%9C


rbenv & ruby

以下のコマンドで普通にインスコできる

 git clone https://github.com/rbenv/rbenv.git ~/.rbenv

cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
cd
. .profile
rbenv install 2.3.1

他に 2.3.3 および 2.4.0 はビルド成功を確認した。


nokogiri

bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/usr/include/libxml2"


spring がおかしいお?

http://stackoverflow.com/a/40186301/683157


nodejs

sudo apt install nodejs で 4.2.6が入る。

sudo apt install npm で 3.5.2が入る。

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

sudo apt install nodejs

で 7.0系が入る。 mastodon に 4.6 以降が必要だった。


yarn

正式サポートされたので

https://yarnpkg.com/en/docs/install#linux-tab

の最初の方法でインストールできる。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn


docker

docker for windows を入れて、 Windows のメイン側を Docker Host とし、 WSL 側には docker toolbox を入れてクライアントから localhost に接続する。


mysql / postgresql

ふつうに Windows 側に chocolately とかでインストールし、 localhost:5432 とかでつながる。


sshd を開始できない?

RubyMine はまだ WSL に対応していないが、自分のマシンの WSL 上で ssh サーバを立ち上げ、 remote 扱いで ruby 環境をセットアップすると使える。(パフォーマンスはあまり出ない)

というわけで sshd を立ち上げるのだが、

sudo apt-get install openssh-server でパッケージ入れて、 sudo /etc/init.d/ssh start で立ち上げられるはずのだが、

UsePrivilegeSeperation を no に変更する必要あるっぽい

http://superuser.com/a/1111750/185240

毎回自分で起動するのめんどいので自動起動したい、という方は

https://wsl-forum.qztc.io/viewtopic.php?f=6&t=10

自動起動は公式 issue が still open なので、もっと素敵な方法が発表される可能性は高い

https://github.com/Microsoft/BashOnWindows/issues/612


ssh-add でけん

eval `ssh-agent` ってしてから実行する

http://qiita.com/sshojiro/items/60982f06c1a0ba88c160

fish の場合は eval (ssh-agent -c)


heroku CLI

ubuntu 用のインストール方法で普通にいけた。すごい

https://devcenter.heroku.com/articles/heroku-cli


iptables が使えないようだ

https://github.com/Microsoft/BashOnWindows/issues/767

Mac で pow.cx 使ってて、それに代わるものとして prax.cr 入れようとしたんだけど無理っぽい


go の1.6をインストール

2017-11-08 sudo apt install golang-go で 1.6 が入る

sudo apt-get install golang すると 1.2 がインストールされてしまう。古い。

http://pachicoma.hateblo.jp/entry/2016/09/19/WLS%E3%81%AB%E6%96%B0%E3%81%97%E3%82%81%E3%81%AEGo%E8%A8%80%E8%AA%9E%E7%92%B0%E5%A2%83%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

これで 1.6 が入る。


go build でコケる

: read |0: interrupted system call

とか言われるやつ。

https://github.com/Microsoft/BashOnWindows/issues/349

修正済みだが正式リリースはまだ。The Windows 10 Creators update which is due early 2017 でリリースされる見込み。


I read somewhere that go 1.6.x might work and indeed, 1.6.4 does work for me. More recent versions of go don't work.


という情報もあり。


ghq

https://github.com/motemen/ghq

使えている。


hub

https://hub.github.com/

まだインストール出来てない

script/build で失敗する


次点としての Vagrant Hyper-V

Bash on Windows でどうしようもないときは仮想マシンを立てるんだけど、 VirtualBox がんばるのも芸がないので Hyper-V を使う。

Hyper-V はほとんどのマシンでデフォルトオフになってて、BIOSの設定でオンにするのだが、 VirtualBox とは排他関係らしく、Hyper-V をオンにするとVirtualBoxはまともに動かないとかなんとか(よくわかってない)

そんで Vagrant の box に Hyper-V 対応と非対応があって、 Hyper-V 対応の Ubuntu ということで以下の box は使えた。

vagrant init karlatkinson/hyperv-ubuntu-14

vagrant up --provider hyperv

provider オプションを毎回つけないと virtualbox を取りに行ってしまうので面倒なのだが、これは VAGRANT_DEFAULT_PROVIDER という環境変数をセットすればいいらしい。

https://www.vagrantup.com/docs/providers/default.html

Hyper-V の致命的な点として、起動や停止に 管理者権限が必要 になる。言い換えると、 vagrant up コマンドを打つターミナルをあらかじめ管理者権限で立ち上げる必要がある。これには、 cmd なり git-bash なりを立ち上げる際に以下のようにすると良い。


  • スタートメニューキーを押す。スタートメニューが開く


  • cmd とタイプ

  • 「最も一致する検索結果」に目当てのアイコンが出て、フォーカスが当たったら ctrl+shift+Enter

  • 「このアプリがデバイスに変更を加えることを許可しますか?」というダイアログが出るので、左キー押して Enter


また追記します。ツッコミ、鉞、大歓迎