LoginSignup
1
1

More than 5 years have passed since last update.

rbenv で Rails 環境をローカルに作る

Last updated at Posted at 2019-02-11

今どき Docker じゃなくて、Mac に Rails 環境を作る方法。

グローバルで使う Ruby の設定

$ rbenv global 2.6.1
$ rbenv rehash
$ ruby -v

Rails に依存する gem はすべて bundler 経由でインストールして、ローカルに保存する。グローバルの Ruby 環境は極力汚さない。

Ruby 2.6.1 のデフォルトの gem はこんなかんじ。

$ rbenv exec gem list
bigdecimal (default: 1.4.1)
bundler (default: 1.17.2)
cmath (default: 1.0.0)
csv (default: 3.0.4)
date (default: 2.0.0)
dbm (default: 1.0.0)
did_you_mean (1.3.0)
e2mmap (default: 0.1.0)
etc (default: 1.0.1)
fcntl (default: 1.0.0)
fiddle (default: 1.0.0)
fileutils (default: 1.1.0)
forwardable (default: 1.2.0)
io-console (default: 0.4.7)
ipaddr (default: 1.2.2)
irb (default: 1.0.0)
json (default: 2.1.0)
logger (default: 1.3.0)
matrix (default: 0.1.0)
minitest (5.11.3)
mutex_m (default: 0.1.0)
net-telnet (0.2.0)
openssl (default: 2.1.2)
ostruct (default: 0.1.0)
power_assert (1.1.3)
prime (default: 0.1.0)
psych (default: 3.1.0)
rake (12.3.2)
rdoc (default: 6.1.0)
rexml (default: 3.1.9)
rss (default: 0.2.7)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
shell (default: 0.7)
stringio (default: 0.0.2)
strscan (default: 1.0.0)
sync (default: 0.5.0)
test-unit (3.2.9)
thwait (default: 0.1.0)
tracer (default: 0.1.0)
webrick (default: 1.4.2)
xmlrpc (0.3.0)
zlib (default: 1.0.0)

パッケージマネージャの bundler はグローバルにインストールする

$ rbenv exec gem install bundler
$ rbenv rehash

Rails をローカルインストール

$ mkdir create-rails-project
$ cd create-rails-project

Gemfile を作る

$ cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "5.2.2"
EOS

Rails を vender/bundle にインストールする

$ bundle install --path vendor/bundle

これで『ガワ』を作ったことになるので、このディレクトリ内で Rails プロジェクトを作る。

$ bundle exec rails new my-app --skip-bundle

--skip-bundle を必ず忘れないように。これを忘れると、グローバルの Ruby 環境に依存 gem がインストールされてしまう。

また、bundle exec rails new my-app -BCMT --skip-coffee -d sqlite3 とすると、 skip-bundle, skip-action-cable, skip-action-mailer, skip-test と CoffeeScriptのインストールがキャンセルされるので便利。-dは使用するデータベース種別を指定する。

こういう構成になった。

.
├── Gemfile
├── Gemfile.lock
├── my-app
└── vendor

my-app が実際に開発する Rails 環境になる。

$ mv my-app ../
$ cd ..
$ cd my-app

gem をローカルにインストールする。

$ bundle install --path vendor/bundle

vendor/bundle を git の管理外にする。

$ echo '/vendor/bundle' >> .gitignore

bundle lockコマンドの実行

$ bundle lock --add-platform x64-mingw32 x86-mingw32

このコマンドを実行しておくと、bundle install時の The dependency tzinfo-data (>= 0) will...のワーニングが表示されなくなる。

起動してみる。

$ bundle exec rails s

成功。

1
1
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
1
1