#はじめに
RubyOnRailsの導入方法です。
エラーが起こってわかりにくかったところをまとめます。
開発環境等
- macOS Mojave version 10.14.6
- Ruby 2.6.4
- Rails 6.0.0
- rbenv local 2.6.4
- sqlite3 3.29.0
入っていない人は次のコマンドをコピペしてインストールしてください。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
次にHomebrewをupdateします
$ brew update
rbenvのインストール
rbenvを使うと複数のバージョンのrubyを管理できるようになります。
ruby-buildはRubyをバージョンごとに異なるディレクトリにビルドするためのツール
$ brew install rbenv ruby-build
環境変数のPATHにディレクトリを登録しておくと登録したディレクトリ直下のスクリプトが絶対パスで指定しなくても実行できるようになります。
$ echo 'export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
Ruby2.6.4のinstall
インストールできるrubyのバージョンを確認する
$ rbenv install -l
僕はruby2.6.4が最新だったのでそれをインストールしました。
$ rbenv install 2.6.4
システム全体でつかうRubyとして登録して置きたいのでそれも設定
$ rbenv global 2.6.4
インストールしたRubyを使用可能にするためにrehash
$ rbenv rehash
複数のバージョンをインストールする場合は繰り返しコマンドの実行を行う
Railsのinstall
RailsはWebアプリケーションフレームワークです。これもインストールしていきます
(注:2.5.0以降のVersionでしかRailsは動きません!!!)
1.bundlerのインストール
まずbundlerをインストールします。gemコマンドではなくbundlerコマンドでパッケージをインストールすることでバージョンの互換性の問題を解決できます。
PermissionError言われたのでsudoさん使って実行
$ sudo gem install bundler
2.sqlite3のアップグレード
Railsを利用するためにはsqlite3をインストールしている必要があります。macにはデフォルトで入っているのでアップグレードします。あとはシンボリックリンクを作成してパスを通す。
RailsのデフォルトのDBはsqliteですのでmysqlを使いたい人は切り替えて使う。
//現在のバージョンの確認
$ sqlite3 --version
3.24.0
//sqlite3のアップグレード
$ brew upgrade sqlite3
//最新バージョンの確認
$ ls /usr/local/Cellar/sqlite/
3.29.0
//シンボリックリンクの作成
$ cd /usr/local/bin/
$ ln -sf ../Cellar/sqlite/3.29.0/bin/sqlite3 ./
//PATHを通す
$ echo 'export PATH=/usr/local/bin:"$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
//変更できたか確認
$ sqlite3 --version
3.29.0
3.作業用ディレクトリへのgemのインストール
作業用ディレクトリの作成を行う
$ mkdir ~/workspace
$ cd ~/workspace
Rubyのバージョンの指定
$ rbenv local 2.6.4
ruby '~> 2.6.4'を追加し、Gemfileのgem "rails"の コメントアウトを外す(バージョンは自分が入れたバージョンに変える)
$ bundle init
Writing new Gemfile to /Users/<ユーザ名>/workspace/Gemfile
$ vim /Users/<ユーザ名>/workspace/Gemfile
ruby '~> 2.6.4'
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails"
railsをインストールする
$ bundle install --path=vendor/bundle
$ bundle exec rails -v
Rails 5.2.3
bundle install --path=vendor/bundleでバージョンエラーが起こる場合の対処方法
試しにブログアプリケーションを作成して動作確認を行ったところbundleがsystemのrubyを参照していたため失敗。雑だがファイルを無理やり移動させてパスを変更したらうまくいった。
bundleとbundlerのPATH
$ which bundle bundler
/usr/local/bin/bundle
/usr/local/bin/bundler
変更
$ mv /usr/local/bin/bundle /Users/<ユーザ名>/.rbenv/shims/bundle
$ mv /usr/local/bin/bundler /Users/<ユーザ名>/.rbenv/shims/bundler
$ which bundle bundler
/Users/<ユーザ名>/.rbenv/shims/bundle
/Users/<ユーザ名>/.rbenv/shims/bundler
4.サーバーの起動
Rails6を使う場合は[# environment is not defined in config/webpacker.ymlが出る時]
(# environment is not defined in config/webpacker.ymlが出る時(Rails6を使う場合必須))を行う。場合によっては[can't find gem railtiesが出る時](# can't find gem railtiesが出る時)を行う。
$ bundle exec rails new blog
$ cd ~/workspace/blog
$ rails server<img width="752" alt="スクリーンショット 2019-10-02 2.10.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505843/cdbc5838-e114-0e7a-ea42-a258ae3cc5fc.png">
<img width="752" alt="スクリーンショット 2019-10-02 2.10.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505843/47e9ad5d-4e44-f551-6387-49bbf56b0f5b.png">
=> Booting Puma
=> Rails 6.0.0 application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.4-p104), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
can't find gem railtiesが出る時
パスを変えて実行したところ can't find gem railtiesと言われたのでreailtiesのインストールを行った。
$ gem list
reailtiesがなければgemでrailsをインストールする。
$ gem install rails
environment is not defined in config/webpacker.ymlが出る時(Rails6を使う場合必須)
Rails6.0.0ではwebpackerのインストールが必要。インストールしていない場合はenvironment is not defined in config/webpacker.ymlとエラーが出るはず。webpackerのインストールにはyarnのインストールが必要となるのでインストールしていない場合はこちらも。
$ brew install yarn
$ bundle exec rails webpacker:install
http://localhost:3000/ にアクセスしてYay! You’re on Rails!の画面が表示されRuby versionが2.6.4かどうか確認
参考サイト
Ruby初学者のRuby On Rails 環境構築【Mac】
Rails をはじめよう - Railsガイド
Bundlerの使い方
MacのpyenvでHomebrewからインストールしたsqlite3を利用する