4
2

rbenv-gemsetを使ってプロジェクト毎のgemを管理して、railsプロジェクトを開始する

Last updated at Posted at 2019-09-26

rbenv-gemsetという存在を知る

インストールはhomebrewで行います。

$ brew install rbenv-gemset

rbenvとコンボで使う管理ツールです

仕組み的には、プロジェクトの中にある.ruby-versionに伴い、.rbenvの中に格納されるrubyバージョンのディレクトリにgemsetsというディレクトリを設置します。

このrbenv-gemsetを利用する前に、rbenvを用意する必要がありますので、こちらを先に読んで設定の上、下記から始まる記事を読んでください。
rbenvでプロダクト毎にrubyのバージョン管理をする

rbenvでの設定が済んだら、下記のようにしてgemsetを作成していきます。

rbenv gemset create 使われているRubyバージョン gemセットの名前(プロジェクト名にするのがセオリーのようです)

(ex:
rbenv gemset create 2.6.0 gemgem-yes

list

これを使うと設置したgemset名とそれに紐づいたrubyバージョンをみることができます。

rbenv gemset list

gemsetを有効にする

有効にするために、プロジェクトのディレクトリ内で

echo >.rbenv-gemsets gemset名

で、.rbenv-gemsetsというファイルを作成します。

rbenv gemset active
=> gemset名 global

こうすることで、上記のように、gemsetが有効化します。この状態でbundle insetallをすると作成されたgemsetのディレクトリにgemが入っていきます。

Railsのアプリケーションの開発環境を整える

 状況としては2パターンです。元々開発されているアプリケーションにアサインされた時か、新しくアプリを作る時です。
若干手順が異なるので、ここに記しておこうと思います。

新規アプリの場合

まずは、gemコマンドを使ってRails本体をインストールします。

気をつけなければならないこと

初めて開発環境を構築する時、macで行う時限定かもしれませんが・・・windows環境はわかりません・・・すいません。
macの場合、元々入っているgemとrailsに妨害を食らって、sudo gem install railsループにハマる可能性があります。

試しに、whichコマンドを打ってみると、

$ wich rails
/usr/bin/rails

こんな風にデフォルトで入ってる邪魔な奴がいます。本質的にはパスの問題なので、以前書いたapple-git問題と同じシチュエーションですが、Railsの方がハマりやすい罠として顕現する気がします。

なぜなら、嘘の指示を出してきますからね・・・sudo gem install railsのコマンドを言われた通りに行うと、rbenvの実行権限が変化し、更なる面倒くさい事態を引き込むことになるからです。
もし、既にこのsudo gem install railsのループにハマり、今度は、gem uninstall railsなどのコマンドすらPermission deniedが原因で打てなくなったら、まず、下記コマンドで実行権限を奪還してください。

$ sudo chown -R ユーザー名:staff /Users/ユーザー名/.rbenv                                                                                                                                        

さて、実行権限を奪還したら、今度は、.rbenv内部にインストールしたrailsを使えるようにします。Catalinaからシェルのデフォルトはzshになったので、.zshrcの書式でここでは記述します。bashやfishをお使いの方は、適宜書き換えてください。

.zshrc
export PATH=$HOME/.rbenv/shims:$PATH

変更をsourceコマンドで反映させます。

$ source ~/.zshrc
$ gem install rails

こうすることで、

$ rails -v                                                                                                                                                                                        
Rails 6.0.3.4

whichコマンドでも参照しているパスを見てみます。

$which rails                                                                                                                                                                                        
/Users/ユーザー名/.rbenv/shims/rails

ちゃんとrbenv管理下のRailsを参照していますね。これでもう大丈夫です。
と、出てくれば、OKです。

ようやく、アプリを作成するコマンドを使います。

  • dbがMySQLの場合
$ rails new アプリ名 -d mysql

もしくは、既にリポジトリがある場合だったら下記みたいにする

$ rails new . -d mysql

ここで、bundle installした時にmysql2がインストールできないエラーに当たるかもしれません。そんな時は、この記事の下にある「開発環境周りで使うであろう自分の備忘録Qiita記事」の所に貼ったリンクの記事をご覧ください。

$ bundle install

既存のアプリの場合

最初は恐らくbundle intallする為のbundleが無い可能性があるので、最初はgem installでbundlerを落としておきます。

$ gem install bundler

$ bundle install

下記のパスに移動して上げてgemのディレクトリにgemの中身が落ちてきていれば成功です。rubyのバージョンはそれぞれのrbenvでインストールしたものに合わせて、また、gemセットの名前は自分で作ったものでパスを打ってください。

$ cd .rbenv/versions/rbenvで落としたrubyバージョン/gemsets/gemセット/gems

gemsetの削除

rbenv gemset delete 使われているRubyバージョン gemセットの名前

(ex:
rbenv gemset delete 2.6.0 gemgem-yes
=> deleted gemgem-yes from 2.6.0

開発環境周りで使うであろう自分の備忘録Qiita記事

brewでインストールしたmysql8の初期化

mysql2がbundle installできない時の対処方法

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