DebianにRubyを入れる方法

リモートサーバー（OSはDebian）にrbenvを使ってRubyをインストールしました。少々手こずったので、手順をまとめてみようと思います。

`git clone`コマンドを使うので、Gitをインストールしていない方は、はじめに下記コマンドでインストールしてください。

```
$ sudo apt install git-all
```

###### 1. 下記コマンドで、githubのリポジトリからクローンを作成します。

```terminal
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
```

###### 2. パスを通します。
```
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
```

###### 3. 下記コマンドを実行します。
```
$ ~/.rbenv/bin/rbenv init
```

コマンドを実行すると、メッセージが表示されます。

```
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init -)"
```

###### 4. 表示されたメッセージに従って、下記コマンドを実行します。
```
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
```

###### 5. PATHの変更を有効にするために、shellを再起動します。
`exit`コマンドでログアウトして、再度ログインすればオッケーです。


しかし、ログインし直すとユーザー名が緑色から白色に変わるかもしれません。
その理由は一番最後に説明します。






###### 6. `rbenv install`コマンドを使えるようにするために、`ruby-build`をインストールします。
```
$ mkdir -p "$(rbenv root)"/plugins
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
```

###### 7. 現時点で`rbenv install`コマンドを実行するとエラーになってしまいます。
```
$ rbenv install 2.7.0
Downloading ruby-2.7.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.bz2
Installing ruby-2.7.0...

BUILD FAILED (Debian 10 using ruby-build 20200224-6-gd8019fe)

Inspect or clean up the working tree at /tmp/ruby-build.20200331004824.8898.ONezFx
Results logged to /tmp/ruby-build.20200331004824.8898.log

Last 10 log lines:
checking for ruby... false
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-build.20200331004824.8898.ONezFx/ruby-2.7.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
```

###### 8. エラーを解決するために、下記のコマンドを実行します。

```
$ apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev
```
[ruby-buildのwiki](https://github.com/rbenv/ruby-build/wiki)に、ちゃんとrubyのインストールをできるようにするビルド環境を作るためのコマンドがOSごとに書いてあります。

###### 9.  再度`rbenv install`コマンドを実行してみましょう。今度はエラーが出ずにうまくいくはずです。少し時間がかかります。
```
$ rbenv install 2.7.0
Downloading ruby-2.7.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.bz2
Installing ruby-2.7.0...
Installed ruby-2.7.0 to /home/xxx/.rbenv/versions/2.7.0
```

###### 10. 最後に`rbenv global`コマンドで、バージョンを指定すれば完了です。

```
$ rbenv versions
  2.7.0
$ rbenv global 2.7.0
$ rbenv versions
* 2.7.0 (set by /home/xxx/.rbenv/version)
```


##### 参考

- https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell
- https://github.com/rbenv/ruby-build
- https://github.com/rbenv/ruby-build/wik
- https://qiita.com/tatsurou313/items/2a67075ae2416922bff0


### ログインし直すとユーザー名の色が変わった理由
Debianにログインすると、以下のファイルを順番に探して、最初に見つけたファイルのみを読み込ます。

1. ~/.bash_profile
2. ~/.bash_login
3. ~/.profile      (このファイルには、.bashrcを読み込む記述がある）

自分の環境では、最初は`.profile`しか存在しなかったのですが、rbenvのパスを通すときに実行した以下のコマンドで`.bash_profile`が作成されました。

```
$$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
```

それにより、ログインし直すと、色の設定が書かれていた`.profile`が読みこまれなくなり、ユーザー名の色が変わりました。
`.bash_profile`ファイルに以下の記述を追加することで、ログインしたときに`.profile`の内容も読みこまれるようになり、ユーザー名の色が緑色に戻ります。

```.bash_profile
source ~/.profile
```

##### 参考
- https://qiita.com/fj_/items/a46769541ffff3093889
- https://qiita.com/hiesiea/items/860c42a96b031f929b94
- https://qiita.com/hirokishirai/items/5a529c8395c4b336bf31
- https://qiita.com/magicant/items/d3bb7ea1192e63fba850