8
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

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

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 がおかしいお?

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
8
Help us understand the problem. What are the problem?