※Mac向けの記事です
Homebrewの代わりにanyenv
Ruby on Railsの公式チュートリアルではHomebrewを使った環境構築を紹介していましたが、
私はanyenv(※)を利用しているため、導入手順を調べて構築しました。
何度かエラーが出てハマったので、手順を丁寧に残しておきます。
anyenv とは、ざっくり言うと、rbenv とか、nbenv とか複数バージョンをインストールできる **env 系をまとめて管理できるツール。
Mac に anyenv でサクッとマルチ開発環境構築より引用
構築手順
参考:Rails Girls インストール・レシピ
Homebrewを利用する場合は、上記URLの手順通りで構築できます。
前提
- MacOS
- Homebrewインストール済み(未インストールの場合より早く構築可能)
Command line toolsをインストール
$ xcode-select --install
※"$"はコマンドに入力しないこと(以後省略)
###Homebrewでインストールしたenv系をアンインストール
Homebrewを導入していない方はスキップしてください。
brewとanyenvが混在すると競合する可能性があるため、brewでインストールしたenv系を削除する。
$ brew uninstall rbenv
他のツールが依存していると削除できないこともあるので、envに依存しているツールを先に削除する。ディレクトリが残ってしまうので、同時に削除しておく。
$ rm -rf ~/.rbenv
anyenvのインストール
Homebrew導入済み場合
$ brew install anyenv
$ anyenv init
# 実行後、ターミナルを再起動する
Homebrewを使わない場合
- GitHubのソースからインストール
$ git clone https://github.com/anyenv/anyenv ~/.anyenv
- パスを通す
#bashの場合
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
#Ubuntu Desktopの場合
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc
#Zshの場合
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc
#Fishの場合
$ set -Ux fish_user_paths $HOME/.anyenv/bin $fish_user_paths
- セットアップしてターミナルを再起動
$ ~/.anyenv/bin/anyenv init
# 実行後、ターミナルを再起動する
各env系のインストール
- 今回はnodenv, rbenvを導入する。
$ anyenv install nodenv
$ anyenv install rbenv
各種の安定版のバージョンを確認
$ nodenv version
$ rbenv version
# rehashしておく(gem)
$ nodenv rehash
$ rbenv rehash
私の場合は下記の通りになりました
$ rbenv version
2.6.3 (set by /Users/******/.anyenv/envs/rbenv/version)
$ nodenv version
12.1.0 (set by /Users/******/.anyenv/envs/nodenv/version)
bundlerのインストール
bundlerがインストールされているか確認
$ bundle -v
# 私の場合は以下のように出力された
Bundler version 2.0.2
# インストールを確認したらアップデートする
$ gem update bundler
インストールされていなかった場合
bundleをインストールする
$ gem install bundler
$ bundle -v
Railsのインストール
作業ディレクトリ作成
# フォルダをカレントディレクトリに作成
$ mkdir rails_sample(フォルダ名)
# 作成したフォルダに移動
$ cd ~/rails_sample
cd /rails_sampleで移動するのを忘れるのに注意(忘れるとrails server実行時にエラーが出ます)
Gemfileの作成
これを忘れるとrailsファイル作成時に「.gemがありません」というエラーが出ます。
# ~/rails_sample配下にて
$ bundle init
- Gemfileを編集する
# Gemfile編集モードに入る
$ vi Gemfile
# 編集モードに切り替わるので, iを押下してカーソルの左から入力開始(i: Insert の意味)
# #gem "rails" をコメント解除(#を削除)して以下のようにする
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails"
Railsのインストール
# 念の為アップデートしておく
$ sudo gem update --system
# railsをインストール
$ bundle install --path=vendor/bundle
# railsのバージョンを確認
$ bundle exec rails -v
Rails 5.2.3
# rehashしておく(railsコマンドを使えるようにする)
$ rbenv rehash
# sampleフォルダにrailsアプリフォルダ(app)を作成
~/rails_sample
$ bundle exec rails new app
create
create README.md
create Rakefile
create .ruby-version
create config.ru
create .gitignore
create Gemfile
(以下略)
rails serverを起動する
# ディレクトリ移動(作成したappフォルダへ)
$ cd /app
# サーバー起動
$ rails server
ここで起動したら完了です🎉
Rails is not currently installed on this system.
上記のメッセージが出た場合、指示に従います。
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your "rails" command.
$ sudo gem install rails
# パスワードを要求されたら入力する
~/rails_sample/app
$ rails server
Yay! You're on Rails!
http://localhost:3000/ へアクセスするとRailsの画面が表示されます🎉
rails server が起動しない😣
私がハマったパターンの解決策です。以下を試してみてください。
(上記手順にあった $rbenv rehash
を忘れたがために発生したものと思われます)
# 各envのバージョン確認
~/sample_rails
$ anyenv version
nodenv: 12.1.0 (set by /Users/******/.anyenv/envs/nodenv/version)
rbenv: 2.6.3 (set by /Users/******/.anyenv/envs/rbenv/version)
# 現在の環境で動いているrbenvのバージョン確認(*が付いてるもの)
$ rbenv versions
system
* 2.6.3 (set by /Users/******/.anyenv/envs/rbenv/version)
# rehashしておく
$ rbenv rehash
# 念の為railsを再インストール
$ sudo gem install rails
# railsのバージョンを確認
$ rails -v
Rails 5.2.3
# インストールを確認したのでディレクトリ移動
~/sample_rails
$ cd /app
# server起動
~/sample_rails/app
$ rails server
私の場合はrailsを何度インストールしても
Rails is not currently installed on this system. が表示されましたが、上記の方法で解決できました。
参考になれば嬉しいです。
参考
参考にさせていただきました🙏