6
8

More than 3 years have passed since last update.

【Ruby】Ubuntu での Ruby 開発環境構築

Last updated at Posted at 2020-07-08

はじめに

2020/7/7 時点で Ruby の環境構築をしてみたので、書き起こします。けっこうたくさんの方が記事にしていらっしゃいますが、自分でアウトプットするとそれだけでも勉強になるので。

導入環境

  • Ubuntu 20.04 LTS (64bit)
    • Windows 10 Virtual Box内にインストールしています。

(注意)同じような Ruby バージョン管理ツールに、「RVM」がありますが、rbenv と RVM は非互換なので、「RVM」が入っていない環境を準備します。

入れるもの

複数のRubyバージョンの管理ができる rbenv というツールも一緒に入れます。複数のRubyバージョンを入れられるだけでなく、プロジェクト毎に使用するRubyのバージョンを指定することができるようになります。
 また、rbenv のオプション扱い(?)ですが、ruby-build も導入します。

  • rbenv 1.1.2-30-gc879cb0
    • ruby-build
  • Ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

※どちらも、2020/7/7 時点で最新の安定バージョン、だと思います。

大きな流れ

流れはこんな感じです。
 0. git をインストールしておく。
 1. 事前に必要なツール、パッケージを導入する。
 2. rbenv のインストールと環境設定
 3. ruby-build のインストール
 4. Rubyのインストール

手順0. git のインストール

git 自体は環境構築とは直接関係がないのですが、rbenv, ruby-build のインストールの際、github からダウンロードします。このため、git をあらかじめ入れておいてください。
インストール方法は、こちら に書かれていますが、apt-getコマンド一つで完了です。
※必要に応じて、sudo を頭につけてください。

apt-get install git

手順1. 必要なツール、パッケージの導入

詳しくはこちらに書かれていますが、英語なので、、、
rbenv+ruby-build で必要な Ruby のバージョンをダウンロード、インストールする際、環境の違いでコンパイルエラーが起こったりする場合がある、とのことで、少なくとも下記パッケージは事前に入れておいた方が良いよ、ということです。

一気に入れる場合は、下の長いコマンドをコピペして実行してください。
※必要に応じて、sudo を頭につけてください。

apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev

「libgdbm6」が使えない環境の場合は、「libgdbm5」でやってみて、とのことです。
それぞれのパッケージが何か、については、自分でも調べてみてもよく分からないものが多い、というより、必要になって使う場面にならないと分からなそうなので、興味がある方はそれぞれ調べてみてください。

【補足】事前に必要なパッケージの一覧(自分なりに調べてみた)

※ あくまで2020/7/7 時点で ruby-build の説明に記載のあったものです。
パッケージ名 これって何? 自分の環境に個別に入れてみたときの反応
autoconf configure スクリプトの自動生成ツール
bison パーサジェネレータの一種。コンパイルのときに使われるみたい
build-essential 名前の通り、開発に必要なビルドツール一式が入ってるみたい。
libssl-dev SSL関連の開発用ツールキット
libyaml-dev YAML関連の開発用ライブラリ
libreadline6-dev GNU readline のライブラリらしいが、何の機能かよく分からない・・・ libreadline-dev をすすめられ、libncurses-dev が依存でインストールされました
zlib1g-dev 圧縮(gzip, pkzip )に関するライブラリ  
libncurses5-dev ncurses関連の開発用ライブラリ。端末に依存しない形式でテキストユーザインタフェース (TUI) を作成するためのAPIを提供するそうです
libffi-dev Foreign Function Interface に関するライブラリ。他の言語で書かれたメソッドを呼び出す際とかに使われるんだと思います。
libgdbm6 GNU dbm データベースルーチン (ランタイム版)
libgdbm-dev GNU dbm データベースルーチン (開発用ファイル)
libdb-dev Berkeley Database Libraries [development] → libdb5.3-dev が追加でインストールされました。

手順2. rbenv のインストールと環境設定

2-1. rbenv のインストール

rbenv のインストールは、git clone を使って github からダウンロードし、ホームディレクトリの.rbenvフォルダーに設置します。

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

2-2. rbenv の環境設定1 パスを通す

rbenv の環境設定として、~/.rbenv/binへのパスを通します。公式だと、Ubuntu desktop 環境の場合は、.bashrc にパス設定を追加するように、と記載されています。ので、下のようにコマンド実行すればOKです。

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

【補足】.bashrcではなく、.profile に書く場合

個人的に .bashrc にパスの設定を書く、というのがなんだか筋が悪いような気がしています。環境変数を書くなら .profile か、.bash_profile じゃないのかなぁ、と思うので、自分の環境では .profile に書き込みました。

.profile にパス設定を記述する場合は、.profile をエディタで開いて、下記コードを追記して下さい。

if [ -d "$HOME/.rbenv/bin" ] ; then
    PATH="$HOME/.rbenv/bin:$PATH"
fi


2-3. rbenv の環境設定2 rbenv init - を .bashrc に入れる。

rbenv init - を .bashrc 内で実行するように、下記コマンドを実行します。

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

その後、設定を反映させます。

source ~/.bashrc

【補足】rbenv init - を .bashrc に入れることについて

rbenv init - コマンドは、shimsディレクトリの再作成やら、rehash処理なんかをしているのですが、こちらのコマンド内でも $PATH に shims へのパスを追加しています。なので、.bashrc に入れるのはなんだか気持ち悪いのですが、他にもいろいろ処理をしているので、こちらは公式の指示に従いました。

※ .bashrc に入れると、なにか変更して source ~/.bashrc で設定反映する度に、パスが2重、3重と追加されてしまうんですよね、、、かといって.bashrc を変更したのに、source ~/.profileするのもなんか変ですし。


手順3. ruby-build のインストール

ruby-build をインストールします。ruby-build も github 上に公開されていますので、rbenv と同じように、git clone でダウンロードします。設置する場所は、~/.rbenv/plugins/ ディレクトリの下です。

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

これで、rbenv install コマンドが使えるようになります。

手順4. rubyのインストール

rbenv install コマンドで、ruby の各バージョンのインストールができるようになっています。

まず、rbenv install -l で、インストールできる安定バージョンを確認します。

$ rbenv install -l
2.5.8
2.6.6
2.7.1
jruby-9.2.12.0
maglev-1.0.0
mruby-2.1.1
rbx-5.0
truffleruby-20.1.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all' to show all local versions.

通常版Ruby の 2020/7/7 時点での最新安定版は 2.7.1 のようなので、そちらをインストールする場合は、バージョンを指定します。

rbenv install 2.7.1

インストール後、通常使う ruby のバージョンとして設定するには、rbenv global を使います。

rbenv global 2.7.1

最後に、インストールしたrubyのバージョンをshimsに反映させるために、rbenv rehash を実行します。今後、ruby の別バージョンを入れたり、gem を追加したりした時は、rbenv rehash を行った方がいいそうです。

rbenv rehash

エラーが出ていなければ、これで ruby の実行ができるようになっています。
'ruby -v' でバージョンの確認ができます。

$ ruby -v
Ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

また、irbを使って "Hello, World!" を表示させてみます。

$ irb
irb(main):001:0> puts "Hello, World!"
Hello, World!
=> nil
irb(main):002:0> 
6
8
0

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
6
8