目的
Ruby on Railsの環境構築をします。
前提条件としてWindows10ユーザーを今回は対象にしています。
環境
- Windows10
- WSL/Ubuntu18.04.2 LTS
- rbenv 1.1.2
- ruby 2.6.1
- rbenv on rails 5.2.3
- SQLite3.22.0
Windows Subsystem for Linux(WSL)
Windows Subsystem for Linux(WSL)はWindows上でLinux向けソフトウェアを実現するための仕組みです。ただし、64ビット版のWindows10でしか利用できません。
Ubuntu
Ubuntu(ウブントゥ)はLinuxをベースとした、オペレーティングシステム(OS)です。今回はWSL環境にUbuntu18.04をインストールします。
具体的なインストール方法
- コントロールパネルを開き、[プログラム]→[プログラムと機能]→[Windouwsの機能の有効化または無効化]に進みます。
- [Windows Subsystem for Linux]のチェックボックスをオンにして[OK]ボタンをクリックします。
- Windowsを再起動します。
- [スタート]ボタンを押して、[Microsoft Store]を開きます。
- 検索ボックスに「ubuntu」と入力して現れる選択肢の中から[Ubuntu18.04]を選びます。
- [入手]ボタンを押します。
- [起動]ボタンを押します。
- 黒い背景ウィンドウが開き、「Installing, this may take a few minute...」というメッセージが表示されます。
- 「Enter new UNIX username:」と表示されたら、Ubuntuで使用するユーザー名を入力します。
- 「Enter new UNIX password:」と表示されたら、Ubuntuで使用するパスワードを入力します。
- 「Retype new UNIX password:」と表示されたら、同じパスワードを再入力します。
- 末尾に$のある行が表示されたら黒い背景のウィンドウを閉じます。
以上です。
Ubuntuの更新
ターミナルで次の二つのコマンドを順に実行し、Ubuntuを更新します。
$ sudo apt-get update
$ sudo apt-get -y upgrade
定期的に更新することをおすすめします。
emacs25をインストールする方は
$ sudo apt-get -y install emacs25
このブログではemacsを使います。vimの方は適宜読み替えてください。
WSL/Ubuntu利用上の注意点
WSL/Ubuntuを利用するうえで十分に気を付けなければならないのは、Windows側のソフトウェアでWSL/Ubunt側のディレクトリやファイルを操作すると壊れる危険性があるので注意が必要です。
rbenvのインストール
サブシステムのUbuntu環境ができたところで、つぎは
Ruby on Railsのrubyをインストールします。
複数のrubyをバージョン管理できるrbenvが便利ですので、そのインストールを推奨しています。
rbenvとは
- 複数のRubyのバージョンを管理できます。
- rbenv本体にはRubyのインストール機能はついていない。
- ruby-buildを併用することで、Rubyを簡単にインストールできる。
推奨されるビルド環境
ruby-buildはシステムの依存関係が満たされていないためにコンパイルが失敗したり、コンパイルが成功しても実行時に失敗することがあります。以下の手順は、公式のビルド環境の推奨事項です。
バージョンによっては、libgdbm5は利用できません。その場合は、libgdbm3を試してください。
$ sudo apt-get -y install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
rbenv, ruby-build のインストール方法
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ ~/.rbenv/bin/rbenv init # 出力される指示に従う
自分の場合は以下のような指示
# Load rbenv automatically by appending
# the following to ~/.bashrc:
eval "$(rbenv init -)"
なので
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ここでPATHの変更が有効になるようにシェルを再起動します。
ruby-buildをインストールします。
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
テスト
環境ができているかテストします。
次のコマンドを実行します。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
実行結果例
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20170523)
Counting installed Ruby versions: none
There aren't any Ruby versions installed under `~/.rbenv/versions'.
You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK
ここで問題なければ、rubyをインストールします。
$ rbenv install -l
$ rbenv install 2.6.1 #今回は2.6.1をインストール
$ rbenv global 2.6.1 #フォルトで使いたいrubyのバージョンを指定
$ rbenv global #確認
$ ruby -v #確認
Gitでアップグレードする
Gitを使って手動でrbenvをインストールした場合は、GitHubから最新版にアップグレードすることができます。
$ cd ~/.rbenv
$ git pull
SQlite3のインストール
データベース管理システムSQLite3をインストールします。ターミナルで次のコマンドを入力して実行します。
$ sudo apt-get -y install sqlite libsqlite3-dev
バージョン確認をします。
$ sqlite3 -version
nodejsのインストール
$ sudo apt-get -y install nodejs
Railsのインストール
ターミナルで次のコマンドを実行します。これはRailsが依存するGemパッケージnokogiriのインストールに必要です。
$ sudo apt-get install -y build-essential patch ruby-dev zlib1g-dev liblzma-dev
Rails をインストールします。
$ rbenv exec gem install rails --version=5.2.3
Railsのバージョンを確認
$ rails -v
まとめ
- WindowsにはUnix環境がないために、サブシステムでLinuxを使います。
- そのためにUbuntuをインストールしました。
- rubyをインストールするために、rbenvをインストールしました。
- rbenv環境上にRailsをインストールしました。
最後にまとめて一気にインストールしたい人のためのシェルスクリプトを用意しました。
ちょっと詳しい人ならばこちらのほうがスムーズにセットアップができるとはおもいます。
シェルスクリプトの場合
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo apt-get -y install emacs25
$ emacs install.sh
以下の内容を入力
!/bin/sh
sudo apt-get -y install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
CONFIGURE_OPTS="--disable-install-rdoc" rbenv install 2.6.1
rbenv global 2.6.1
sudo apt-get -y install sqlite libsqlite3-dev
sudo apt-get -y install nodejs
sudo apt-get install -y build-essential patch ruby-dev zlib1g-dev liblzma-dev
rbenv exec gem install rails --version=5.2.3
実行します。
$ source install.sh