質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

2回答

3069閲覧

gem install rails を実行するとパーミッションエラーが表示される

17yuki

総合スコア1

rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2021/01/11 17:09

前提

Ruby on Rails のインストールをしようとしているプログラミング入門者です。

項目バージョン
OSmacOS Catalina 10.15.4(19E287)
rubyruby 2.6.3p62 (2019-04-16 revision 67580)
gem3.2.4
rails未インストール(gem install rails でエラー発生)
HomebrewHomebrew 2.7.3
ebenvrbenv 1.1.2(Homebrew でインストール)
BundlerBundler version 2.2.4

叶えたいこと

Ruby on Rails のインストール

発生している問題

ターミナルで gem install rails を実行したところ、次のようなエラーに遭遇しています。

% gem install rails ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

command not found ではないのでどこかに rails は存在しているのかな?と思い rails -v を実行。

% rails -v 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 を提案されるので素直に実行しますが、元のエラーにループします。

% sudo gem install rails Password: ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.

調べたところ、 rbenv の Ruby ではなくシステムの
Ruby の gem コマンドを実行している?というところまでは理解できたのですが、
では具体的にどのような手順を踏めば Rails のインストールができるか分からず。。。
自己解決は難しいようなので質問しました。

試したこと

どこに rails コマンドがあるか確認しました。/usr/bin/rails に存在するようです。

% which -a rails /usr/bin/rails % type -a rails rails is /usr/bin/rails

環境について補足

環境は次のとおりです

% sw_vers ProductName: Mac OS X ProductVersion: 10.15.4 BuildVersion: 19E287 % echo $SHELL /bin/zsh % /bin/zsh --version zsh 5.7.1 (x86_64-apple-darwin19.0) % ruby --version ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19] % gem --version 3.2.4

PATH は次のとおりです。

% echo $PATH /Users/YUKI/.rbenv/shims:/Users/YUKI/.rbenv/shims:/Users/YUKI/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

また、Ruby, Rails, gem のパスは次のとおりです。

% which ruby /Users/YUKI/.rbenv/shims/ruby % which rails /usr/bin/rails % which gem /Users/YUKI/.rbenv/shims/gem

なお、Ruby は次の手順でインストールしました。
0. 「Homebrew」をインストールする
0. 「Homebrew」を用いて「rbenv」をインストールする
0. 「rbenv」を用いてRubyをインストールする

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/01/11 17:35

rbenv versions というコマンドを実行したら何が表示されますか?
17yuki

2021/01/11 23:36

次の通り表示されました。 % rbenv versions * system (set by /Users/YUKI/.rbenv/version) 3.0.0
guest

回答2

0

ベストアンサー

% rbenv versions

  • system (set by /Users/YUKI/.rbenv/version)
    3.0.0

これは rbenv で ruby 3.0.0 を入れたものの、まだそれを使う設定になってない状態です。
rbenv global 3.0.0 (または目的のディレクトリに cd して rbenv local 3.0.0) とすることで、実際にそれを使う設定になります。

(ちなみに、which コマンドで ruby や gem や rails が ~/.rbenv/shims/ にあるものが使われると表示されてますが、これらは ruby や gem や rails そのものではなく、rbenv global や rbenv local で設定されたバージョンの ruby や gem や rails を呼び出すコマンドになってます。)

% rbenv global 3.0.0 # ruby 3.0.0 を使う設定にする % rbenv versions system * 3.0.0 (set by /Users/YUKI/.rbenv/version) # * がついたやつが使われます % ruby -v ruby 3.0.0 # と表示されるはず % gem install rails # 略 (成功するはず) % which rails /Users/YUKI/.rbenv/shims/rails

参考: rbenvの使い方と仕組みについて - Qiita

これでインストールした rails コマンドが使えるようになるはずですが、zsh の場合新しいコマンドがすぐに認識されないことがあるので、その場合は rehash というコマンドを打ってみてください。

% rails -v 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. % rehash % rails -v Rails 6.1.1 # インストールした rails のバージョンが表示されるはず

参考: Zsh環境でインストールしたコマンドが即認識されない状況への対処 - Qiita

投稿2021/01/12 03:05

hoshi-takanori

総合スコア7901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

17yuki

2021/01/12 13:59

まさに教えていただいた通りに実行していったらインストールができました。 ありがとうございました。連休中ずっと試行錯誤していたのでとても嬉しいです! (以下、理解をまとめます。) % rbenv versions * system (set by /Users/YUKI/.rbenv/version) 3.0.0 % rbenv versions で Ruby のバージョンを確認する。 現在使用するよう設定されている(* がついている) のは system 側の Ruby であることを示している。 % rbenv global 3.0.0 rbenv global 3.0.0 を実行することで、自分でダウンロードした 3.0.0 に切り替える。 % rbenv versions system * 3.0.0 (set by /Users/YUKI/.rbenv/version) ふたたび % rbenv versions で確認。さきほどの % rbenv global 3.0.0 の実行によって、3.0.0 に設定が変わっている。 %ruby -v ruby -v で 3.0.0 に切り替わったことを確認する。 % gem install rails system 側の Ruby に設定されているときは書き込み権限がないためエラーがループしたが、 % rbenv global 実行により、自分でダウンロードした 3.0.0 に設定を切り替えたので成功した。
hoshi-takanori

2021/01/12 14:37

ぶじインストールできてよかったです。コメント通りのご理解で間違いありません。 (補足すると、rbenv versions は rbenv が実行するつもりのバージョンを表示するのに対して、ruby -v は (rbenv 経由で) 実際に実行された ruby 自身が自分のバージョンを表示するので、より確実と言えます。)
17yuki

2021/01/13 15:42

> rbenv versions は rbenv が実行するつもりのバージョンを表示するのに対して、ruby -v は (rbenv 経由で) 実際に実行された ruby 自身が自分のバージョンを表示する わあ、本当ですね! rbenv versions は実行前の Ruby のバージョンを並べて(* をこれから実行するよ)表示していますが、 ruby -v は実行された Ruby のバージョンだけを表示していますね。 基本的な違いも考えずやみくもにコマンドを打っていたようです。。 大変勉強になりました。この度はありがとうございました!
guest

0

% which ruby
/Users/YUKI/.rbenv/shims/ruby
% which rails
/usr/bin/rails
% which gem
/Users/YUKI/.rbenv/shims/gem

railsはMacOS標準の/usr/bin/railsを使うのでは無く、
あなたが作ったrailsアプリのフォルダー内にインストールしてください。
(/Libraryや/usr/binには書き込み権限がない為)

アプリフォルダー内のGemfileで
gem 'rails', 'バージョン'
と記述して、bundleコマンドでrailsをインストールします。
('バージョン'はあなたがインストールしたいrailsのバージョン番号)

投稿2021/01/11 22:20

編集2021/01/11 22:28
technocore

総合スコア7337

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

17yuki

2021/01/12 13:53

回答くださりありがとうございます! 自身で Gemfile に追記して設定を切り替えてインストールする方法もあるのですね。
technocore

2021/01/12 14:02

あるのですね、というか、その方法が普通ですね。 ・railsアプリのフォルダを作って移動する ・rbenv local で使用するrubyのバージョンを決める ・bundle init でGemfileを作る ・Gemfileでrailsのバージョンを決める そのあとはbundle install、と bundle exec rails newです。
17yuki

2021/01/13 15:35 編集

なるほど、こちらが通常の方法なのですね。 これから始める入門者なので教えていただいた方法を試してみるのはもう少し先になりそうですが、 rbenv:異なるバージョンの ruby を複数プロジェクトで使用する場合に使う管理ツール bundle:プロジェクトごとに異なるバージョンの gem を有効化・実行するためのツール と理解しました。 詳しく教えてくださりありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問