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