Ubuntu環境でRailsの環境構築、初期化してる状態から


## 目的

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