LoginSignup
50

More than 5 years have passed since last update.

windowsのbashでRails環境を構築してみる。(Windows 10 Insider Preview 14316)

Last updated at Posted at 2016-04-10

windowsのbashでRails環境を構築してみる。(Windows 10 Anniversary Update版)に書きなおしたので、こちらを参照下さい。

前提

本記事での内容は2016年4月6日公開でのbuild 14316環境下での構築記事となります。
また、現時点では"Fast Ring"での公開ですので不具合が発生する確率が高いため、使用する場合はその辺を理解の上、使用するようにしてください。

bashインストール

さっそくwinodwsでbashが使えるとのことですので使えるようにセットアップをします。
まずは、Windowsでの"開発者モード"をオンにします。
「スタートメニュー」→「設定」→「更新とセキュリティ」→「開発者向け」を選択し、"開発者モード"を選択します。
image

次にbashを使用するために以下の機能を有効にします。
「スタートメニュー」右クリック→「プログラムと機能」→「Windowsの機能の有効化または無効化」から"Windows Subsystem for Linux(Beta)"をチェックし、有効にします。
image

これを選択すると再起動を求められるので、再起動します。

最後にBashコマンドのインストールです。
コマンドプロンプトを開いて、bash と打ち込み、Enterで実行。
image

と、こんな感じでインストールできます。(最後にls で動作確認)
以降のインストールで使用するapt-getのインストールリストを最新にしておくといいです。

apt-get update

Rubyのインストール

ではRubyのインストールです。
Windowsではインストーラを使うのが普通?かもしれないですが、今回は"rbenv"を使って入れてみます。

といってもまずは必要な"git"から。以下のコマンドでgitをインストールします。

apt-get install git

うーん、Windowsでapt-get が動くのがなんとも言えませんが、gitがインストールできるはずです。
ちなみに自分のWindowsがほぼまっさらな状態でgitをインストールしてなかったのですが、元々入っていればいらないのかな?その辺は一度gitコマンドを叩いて確かめてくれるとありがたいです。
git以外を入れているのでは後々いるからです。

続いて、rubyをインストールするためのrbenvをインストールします。

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

次に~/.profile(間違えてたこっち→)~/.bashrcに以下を足します。(一番最後でOK)

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

ただ、Windows側のコマンドプロンプトからbash コマンドを叩いただけでは上記のファイルは読み込まれない?ようなので都度以下を叩く必要があるかもしれません。(この辺はもう少し調べないとわからない。)
上記を~/.bashrcに追加して以下を実行すれば以降いらないはずです。

source ~/.profile

Rubyのインストールに必要なCコンパイラやその他必要なものを入れておく。

apt-get install gcc build-essential libssl-dev libreadline-dev zlib1g-dev

これでRubyをインストールする環境が整ったので、Ruby2.3.0をインストール

rbenv install 2.3.0

インストールしたRubyに切り替えてバージョンが表示されればOK

rbenv global 2.3.0
ruby -v

Ruby on Railsのインストール

ここまでくればほぼ通例どおりなので、サクッといきたいところ
まずは、bundlerを入れます。

gem install bundler

作成用のフォルダを作ってbandleの初期化を実行

mkdir rails_on_windows
cd rails_on_windows
bundle init

作成されたGemfileを開いてRailsのコメント部分を修正

source "https://rubygems.org"

gem "rails"

ここで一番の難所のNokogiriインストール設定をしておく。

gem update --system
apt-get install libxml2 libxml2-dev libxslt-dev
bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/usr/include/libxml2"

でRailsをインストール

bundle install --path vendor/bundler

Nokogiriでエラーにかからなかったらゴールは目の前です。

apt-get install libsqlite3 libsqlite3-dev

sqliteで動かすだけですが、とりあえず入れておきます。
それとJavaScriptのランタイムがいるのですが、
「Node.jsをインストールする」か「以下のgemをGemfileで有効」のどちらかを実施します。(Gemfile編集はbundle exec rails new first_project --skip-bundle で作られたGemfileを編集)

gem 'therubyracer', platforms: :ruby

でもって最後に以下のコマンドで仕上げのインストールを。

bundle exec rails new first_project --skip-bundle
cd first_project
bundle install --path vendor/bundler

最後にRailsを立ち上げます。

bundle exec rails s

なんかワーニング出ますが、とりあえずは無視…

/root/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/bundler-1.11.2/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /root/.rbenv/versions in PATH, mode 040777
/root/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/bundler-1.11.2/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /mnt/c/Users/【ユーザ名】/rails_on_windows/first_project/vendor/bundler/ruby/2.3.0/bin in PATH, mode 040777
/root/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/bundler-1.11.2/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /mnt/c/Users/【ユーザ名】/rails_on_windows/first_project/vendor/bundler/ruby/2.3.0/bin in PATH, mode 040777

ブラウザで「localhost:3000」でアクセスすると…
image

エクスプローラからファイルを見る

最後に作ったファイルはエクスプローラからはどうなってるかというと
image
こんな感じに普通に見えるので、好きなエディタで開発も可能です。

ワーニングは別に調査するとして、
まずはWindowsでRubyおよびRailsの開発環境が作れるってことには大きく前進したんじゃないでしょうか。
Windowsの豊富なソフトウェア群での開発とLinuxでの開発環境のハイブリットはなかなかいい感じです。

安定の誤字脱字や間違いがあれば修正します。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50