AWS Rails環境構築 忘備録

参考サイト

Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで)(Macport編) - Qiita

Railsコマンドが一切使えないと思ったら

RailsとRubyが違うところにインストールされている。

[centos@ip-10-0-1-24 sample]$ which rails

~/.gem/bin/rails

[centos@ip-10-0-1-24 sample]$ which ruby

~/.rbenv/shims/ruby

railsはOSシステムの深部にインストールされている。 それに対してRubyは rbenv にてインストールしたので、自身のホームディレクトリ以下にインストールされている

でたエラーは以下のようなもの。 Railsコマンドは、何も利用できない

$ rails g User
Traceback (most recent call last):
    48: from bin/rails:4:in `<main>'
    47: from /home/centos/.gem/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
    46: from /home/centos/.gem/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'

bundlerを利用してRailsをインストールするようにしないといけない。

bundlerとRailsとRubyとgemの整理

頭の中がこんがらがっているかもしれませんので、ここで整理しておきましょう。
Rubyには、機能追加するパッケージをインストールできます。
これがgemファイルです。
しかし、このインストール,1つ2つなら問題ないですが、WEB開発の場合20〜30ものgemを入れたりします。
一行づつ入力するのも面倒ですし、それぞれ依存関係がありますので、微妙にバージョンも変更する必要があります。

そこでbundlerの登場です。 これがgemを一元管理してくれます。依存関係も把握できます。
このbundlerを利用してほとんどすべてのgemをインストールします。
Railsもgemのひとつなのです。

ですから最初、bundlerだけ インストールします。

それをrbenvのRubyのバージョン管理のもとにおいておくことで、Railsのバージョンが変更になった時、

それぞれのRailsのバージョンで、gem がまとめて管理できます。

このRailsのバージョンでは、このgemのバージョンは2.3以上にしてね。

とか、便利ですね。

Railsで利用するGemは各プロジェクト毎にbundlerで管理するようにしたいので

GEMでRuby環境にbundlerのみをインストール bundlerを使って一時的にrailsをローカルにインストール (Railsプロジェクトを作成するためだけに使用。railsすらローカルディレクトリにインストールする) ローカルのrailsでプロジェクト(今回の例では”example”)を作成 railsをローカルインストールするために使ったbundlerの環境を削除 exampleプロジェクト内で必要なgemをbundlerでローカルインストール

Gemfileを作った後に 下記コマンドを実行

これでローカル環境にRailsもインストールできた。

$ bundle install --path vendor/bundle