【Rails開発環境構築】rbenvをインストールしてbundleをプロジェクト管理してhelloworldする
実現したいこと
railsプロジェクトを複数立ち上げるときに,ruby本体のbundlerを汚さないように管理したい
やったこと
rbenvをインストールして,プロジェクト用のruby環境を管理しました.
$ brew update $ brew install rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ rbenv install 2.3.3 $ rbenv global 2.3.3
bundleもきれいにインストールするため,一度globalをきれいにしてから入れます
$ rbenv exec gem list $ sudo gem uninstall -axI `gem list --no-versions | egrep -v 'test-unit|rdoc|bigdecimal|io-console|json|minitest|psych|rake'` $ gem install bundler
と思いきや,パーミッションでエラーが起きました.sudo をつけると今度は,
ERROR: Error installing bundler: bundler requires RubyGems version >= 3.0.0. Try 'gem update --system' to update RubyGems itself.
というエラーが...
調べてみると,パスが通ってなかったみたい.
$ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17] $ source ~/.bash_profile $ ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin17]
ちゃんとrubyのバージョンが合いました.でもgem install bundler
は通りませんね.
$ which ruby /Users/username/.rbenv/shims/ruby $ which bundle /usr/local/bin/bundle
ここに,bundleがグローバルになってしまい,rbenvの管理下になってないことが原因みたい.
とりあえず出たエラーに従い,以下コマンドを実行
$ gem update --system
インストールされたっぽい表示が出たので,インストールできたのかな.再度gem install bundler
しようとするとconflict起きるのですでに入ったみたい
試しに,test/hello-railsプロジェクトを適当に立ち上げ,railsを入れて見ます
$ bundle init $ vi Gemfile #railsのコメントを入って外す $ bundle install --path=vendor/bundle --binstubs=bundle_bin
--binstubs
のおかげでbundle exec
をわざわざつけなくてもローカルのbundleから呼び出してくれるみたい.なのですが,できない.なんで.bundle exec
つければいけるけど
悔しいので再度プロジェクトを消してやり直す
$ rm -rf hello-rails $ mkdir hello-rails $ cd hello-rails $ rbenv local 2.3.3 $ bundle init $ vi Gemfile # gemの#を削除 $ bundle install --path=vendor/bundle --binstubs=bundle_bin $ rails -v
できない...
調べてみると,どうやらrails4以降は--binstubs
を使わないらしいです.
じゃあしょうがないか..とりあえずbundle exec
つけるだけでいいのでそこまでおおきな問題でもない
$ bundle exec rails s $ ls $ rm -rf Gemfile.lock bin bundle_bin $ bundle install $ bundle exec rails -v Rails 5.2.2
とりあえずRails5は入ったのですが,rails s
できない.
あ,rails newするのを忘れておりました.
$ bundle exec rails new hello-rails $ cd hello-rails $ rails s
無事みんなの顔が見れました.ただこれもしかしたらbundleがglobalになっている可能性が...rails s
で普通に立ち上がったし.てことで一応vendor
の中にいれます
$bundle install --path=vendor/bundle
どうやら,
$ bundle exec rails new プロジェクト名
ではなく,
$ bundle exec rails new .
でカレントディレクトリに入れておけばよかった模様.GemfileはYで上書きで.
以上で,ひとまずrubyのインストールからbundleのきれいなインストールまでをおさらいできました.具体的に自分でやってみるのはやはり大切ですね
ではでは.
注意点
bundle をインストールするときや消すときなど,環境汚さないように注意して下さい. Git管理している人はとくに,Gitリポジトリごと消したり上書きしてしまったりするのに注意(一回やったことがあります...)
参考
以下の記事を参考にさせていただきました.
https://blog.tokoyax.com/entry/ruby/bundler
bundle install しようとしたら ruby のバージョン違くてコケた話 - Qiita
Macに慣れていない頃にRubyのインストール設定したことの整理 - Qiita
https://qiita.com/youcune/items/222777415f00d19cccb4
本記事について
本記事は,学習を目的に書かれています.
間違い,改良案などございましたら,コメントしていただけると幸いです.
基本的に編集途中ですので,何を書いてほしいかもコメントいただけると,
その情報を中心に追記します.