11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UbuntuにRubyを入れた:備忘録

Last updated at Posted at 2019-01-24

こんにちは。Ruby勉強中のプログラミング初心者です
今までずっとWindows使ってたけど、ネットで調べてみると、どうやらWindowsはあまりプログラミングには推奨されないOSらしい
以前からLinuxに興味があったし、それならUbuntuの導入やるか~ということでやりました
以下、備忘録です

OSがWindows10だったので、WSLを使って簡単にUbuntuを導入することができました
やり方はググれば親切な記事がいっぱい出てきます
ありがとうございます

UbuntuターミナルのフォントをCica(最強にして最愛のフォント)に変え、背景は紺色、文字色はクリーム色っぽい感じに
見やすく目にやさしい最高

Rubyを入れるためにまずはgitrbenv(名前が覚えにくい)とruby-buildを入れる必要があります
gitは言わずと知れたスゴイ奴です
これを使いこなせるとカッコイイ。クローンしたりコミットしたりできる。スゴイ
rbenvはRubyのバージョンを管理してくれるイカした奴で、好きなバージョンのRubyをインストールしたり、プロジェクトごとにRubyのバージョンを変えたりすることができます
ruby-buildrbenvのプラグインで、Rubyのインストールを簡単にコイツのおかげでRubyのインストールを簡単にできるらしい

まずはgitを入れます
Ubuntuのターミナルに

$ sudo apt install git

と打ち込んでEnter
Ubuntuのセットアップ時に設定したパスワードの入力を求められます
ちなみにsudoというのは「他のユーザ権限で実行」を表すらしい
何のためにあるのかは謎です
aptはパッケージ管理用コマンドで、CentOSにおけるyumらしい
何のためにあるのかは謎です

gitが入ったらrbenvを入れます

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

ここでgitが出てきます。インストールではなく、リモートリポジトリからローカルにクローンしているんですね。仕組みはよくわからないけど面白いです

$ rbenv --version

と叩いて無事にバージョンが出てくればOK
私の環境ではrbenv 1.1.1-39-g59785f6と表示されました

ruby-buildを入れます

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

あとはrbenvを使ってRubyを入れていきます

$ rbenv install --list

install --listコマンドでインストール可能なRubyのバージョンがいっぱい表示されます。好きなものをインストールしましょう
名著『プロを目指す人のためのRuby入門』(通称チェリー本)では2.4.1が使われています
私は今まで2.4.1を使っていたの今回は2.5.3を入れてみました

ここまでは簡単です。こっからがすごく大変でした
Rubyをインストールするためにコマンドを叩きます

$ rbenv install 2.5.3

不穏な空気と共に文字が流れていき、やっぱり出てきたerrorの5文字

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.20190113131329.644/ruby-2.5.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

エラーが出るとつらいですが、じっくり目を通して何がダメだったのかを読み解いていきましょう
私のように大量の英文を見ると蕁麻疹が出るという人は、エラーメッセージをそのままクエリとしてgoogle様に投げてみるのもいいでしょう
上記のエラーメッセージのno acceptable C compilerに注目し、よくわからんけどCコンパイラが必要なんだな、ということでgccというものをインストールしました。

$ sudo apt install gcc

opensslというものが必要な場合もあるらしいですが、私の場合は既に最新バージョンだったためスルー
「Cコンパイラ? 入れたし大丈夫やろ!」と意気揚々と$ rbenv install 2.5.3を再び叩きます。するとまたエラーが出て落ち込みます

checking if make is GNU make... ./configure: line 27342: make: command not found
no
checking for safe null command for make

makeなるものを入れる必要があるらしい。何に使うのかはわからないけど、エラーメッセージがそう言ってるんだから、エラーメッセージを信じよう。エラーメッセージちゃんと読むのほんと大事

$ sudo apt install make

三度目の正直とばかりにRubyインストールコマンドを叩きますが、またもエラーが出ました。しかし今回はなんだか毛色が違います

Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.

エラーメッセージ様が__「Youはこれをインストールすればイイんじゃない?」__と提案してくれています。感謝……!! 圧倒的感謝……!!!

$ sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

そしてもう何度打ち込んだかわからないインストールコマンドをもう一度叩きましょう

Installed ruby-2.5.3

と出てきました
バージョンを確認して、実際にインストールされたか確かめてみましょう

$ rbenv versions
  2.5.3

花京院! イギー! アブドゥル! 終わったよ……

しかし戦いはまだ終わっていなかった

g e m が 使 え な い

$ gem install bundler
rbenv: ruby: command not found

The `ruby' command exists in these Ruby versions:
  2.5.3

何を言ってるのかわからねーと思うが俺も何をされたのかわからなかった
色々と試した結果

$ rbenv global 2.5.3

このようにrbenv globalコマンドを使い、使用するRubyのバージョンを固定するという段階を経てgemコマンドがちゃんと動作するようになった

$ gem install bundler
(中略)
Successfully installed bundler-2.0.1

無事にrailsを入れることにも成功。これでなんとかやって行けそう
以上、全身がマサカリだらけになりそうな内容ではありますが備忘録でした

01/27 追記
rbenvで別バージョンのRubyをインストールしようとすると、BUILD FAILEDのようなエラーが出ることがありました。これはどうやらインストールしようとしているRubyのバージョンが古いために起こるようです。これでしばらく悩まされました

11
12
3

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
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?