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