2
4

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.

Ruby環境構築1

Last updated at Posted at 2018-12-29

はじめに

Ruby(on Rails)の環境を構築しようと思ったとき、Ruby、Rails、rbenv、ruby-build、Gem、bundlerといろんなものが登場する。それらが何のためにあるのか、どこに何があるのか、どういう順番で構築するのかなど、よくわからない。これらをまとめてみる。

それぞれの役割と関係性

まずは役割と関係性の全体像を1枚の絵にしてみる。
image.png

まず押さえたいのは、Rubyは1つのサーバーの中で複数のRubyバージョンの環境をもつことができる。これを管理するのがrbenvだ。rbenvのプラグインとして、実際にrubyをインストールするのがruby-bildである。

Rubyをインストールすると、rubygemsが付随してインストールされる。これはgemをインストールしてくれる。gemとは、Rubyにアドオンするパッケージ的なもので、必要なgemを入れることでアプリに様々な機能を簡単に実装できる。

ただし、gem間にも依存関係があり、これを人で管理するのは難しい。そこでbundlerを入れる。bundlerを入れると、gemインストール時に依存関係のあるgemを合わせてインストールしてくれる。また、アプリケーション毎にgemを入れることも可能である。分かりにくいがbundler自体もgemである。よって、gemは本質的には同列であるが、抽象的にはbundlerの配下にいたほうが理解しやすい。

gemはrubygemsでもbundlerでもどちらでもインストールできる。ただ、実際はrubygemsで最初にbundlerを入れて、以降はbundlerを使ってgemを入れるのが一般的だ。
Railsはgemの1つであり、Webアプリケーションのフレームワークである。

コンポーネント導入の流れ

改めて説明すると、これらのコンポーネントは以下の順番で入れていく。

  1. rbenvを入れる
  2. rbenvにruby-buildを入れる
  3. ruby-buildでrubyを入れる(付随してrubygemsも入る)
  4. rubygemsでbundlerを入れる
  5. bundlerでgemsを入れる。(gemsの1つとしてRailsがある)

構成パターン

これらのコンポーネントは全て入ってないといけないわけではない。別になくてもいいものもある。一般的なパターン別に分けてみる。

パターン rbenv ruby-build Ruby rubygems bundler gem 内容
1 × × × rubyアプリケーションが動く環境
2 × × gemを使ったrubyアプリケーションが動く環境
3 複数バージョンのrubyアプリケーションが動く環境

インターネットでrubyのインストール手順を調べると各々自分のパターンで説明しているため、最初は何が必要なのかが分からないがいろんなパターンがあるのだ。

まとめ

環境構築についてはRubyは便利なゆえに複雑であるという印象だ。

2
4
2

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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?