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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1952閲覧

初めて開発環境構築に挑戦するが。。。

PartyKids

総合スコア65

Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2017/03/29 02:32

先日初めてMacを買って、開発環境構築に初挑戦中です。docker公式HPにある、Quickstart: Compose and Railsを見ながら構築し、rails tutorialに取り組みたいのですが、
下記のエラーの対処が分からず困ってます

linux

1Errno::EACCES: Permission denied @ dir_s_mkdir - 2/Users/hahaha/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/nio4r-1.2.1 3An error occurred while installing nio4r (1.2.1), and Bundler cannot 4continue. 5Make sure that `gem install nio4r -v '1.2.1'` succeeds before bundling.

初めにrails g controller StaticPages home help
と打ち込むと
your ruby version is 2.0.0/require more than 2.2.2的なメッセージが出てきたので、

linux

1rbenv install -l 2rbenv install 2.3.3 3rbenv global 2.3.3 4.bash_profileにパス設定

でrubyのバージョンを2.3.3にし

linux

1ruby -v と打つと 2 3Rails is not currently installed on this system. To get the latest version, simply type: 4 5 $ sudo gem install rails 6 7You can then rerun your "rails" command. 8と出たので 9 10$ sudo gem install rails と打ち込んだら上記のエラーが発生しました 11

ルート権限有効で以前作業していたため、ルート権限を無効にしたが、解決できません。

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まず、rbenvのフォルダ全てを削除してrbenvを入れ直すところからやり直したほうがいいと思います。
それから、rbenvはsudoを使わないために使用するツールですので、一切sudoは使わないでください。
sudoがなくても動くのがrbenvです。
なので、rbenvを使っているのにsudo gem ...というコマンドを実行するのは何かが間違っているのです。

各コマンドのエラーメッセージでsudoを使え、みたいな事が書いてあるのは、
各コマンドはrbenvの事なんか知らないので、rbenvがない普通の環境を想定しているからです。
従ってrbenvを使っている環境で、各コマンドのエラーメッセージを鵜呑みにしてsudoを使うと余計に混乱が生じます。

投稿2017/03/29 02:51

mingos

総合スコア4025

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

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

PartyKids

2017/03/30 01:21

返事が遅くなってすみません。 mingosさんのおっしゃる通りに実行してみましたが上手くいきませんでした。 買って直ぐにルート権限で作業し、そのまま有効で作業していたため、おかしくなったのではと思いクリーンインストールして初めから作業したら上手くいきました。 rbenvがsudoを使わないのは知っていたのですが、初心者はエラーメッセージをよく読め!っという言葉を信じて実行してしまいました笑 そこで質問なのですが、sudoがあるコマンドは、rbenvに置き換えて実行すれば良いのでしょうか? エラーが出るたびにググるのですが、sudoで解決方法が書かれている記事をよく見かけます。 私の検索方法は、エラーを貼り付けて検索するだけなのですが、ここにsierra等のosバージョンも加えて検索した方がいいのですか? よろしくお願いいたします。
mingos

2017/03/30 02:30 編集

うまく行ったとの事なので、良かったです。 rbenvはrubyに関する事をサポートするので、sudoが必要な場合、不要な場合を切り分ける必要があります。これが難しいのですが・・・。 とりあえず、gem関連はsudoは不要です。 検索する時は、「エラーメッセージ rbenv」で検索したほうがいいかもしれないですね。 後は、macの時だけ特殊なケースもあるかもしれないので、 「エラーメッセージ rbenv mac」も試す価値あるかも。 エラーメッセージを見て検索して解決しようという姿勢は素晴らしいです。 ただ、rbenvのせいで解決に苦労してしまっていますよね。 これはrbenvを使わせる説明をしている側の怠慢です。 sudoで解決する方法が多く検索で見つかるのは、rbenvを使っていない環境が一般的だからです。 rbenvは不要というか、本来なくてもrubyの環境は作れるのです。 rbenvがなくてもrubyの環境は作れるのですが、環境構築やrubyのバージョンの切り替えを自動化したいという人のためのツールとしてrbenvがあります。 ただ、その自動化のために一般的な環境とは少し異なっています。 便利な反面、初心者には混乱を招いているような気がします。 最初はrbenvなしで環境構築をする手順を紹介したほうが長い目で見て親切なんじゃないかなと思ってます。 1 rbenvなしで環境構築。 2 何度も同じ事やってて面倒と感じる。 3 同じ事をrbenvで自動化。 という流れで説明すれば、rbenvがやってくれる事、やってくれない事が理解できるので混乱もしないと思うのですが、チュートリアルを作る側が大変なのでそこまで説明してくれるサイトを見たことがありません。
PartyKids

2017/03/30 12:32

丁寧に回答してくださり、ありがとうございます! なんとなく完成したので、復習がてらhomebrewから構築して勉強したのですが、エラーの連続でとほほな1日でした笑 sudo rbenvコマンドの役割が何を対象にしているのかがなんとなく分かりかけたのですが、もう一つ質問してもよろしいいでしょうか?ゴリ押しで申し訳ございません。 If you edit Gemfile at this point or later, you will need to build the image again. (This, and changes to the Dockerfile itself, should be the only times you’ll need to rebuild.) docker-compose build っと公式に書かれているのですが、このgemfileとはファイルのgemfileですか? 再度構築した際に rails g controller StaticPages home help と打ったら Could not find rake-12.0.0 in any of the sources Run `bundle install` to install missing gems.  っと出てきましたので指示通り打ってgemのインストールを完了させました。 gemfileに書かれていないものをインストールしたのですが、buildコマンドを打ったら上手くいくようになったので、質問させてもらいました。 よろしくお願いいたします。
mingos

2017/03/30 13:19 編集

Dockerについてはまだ良く分かっていないのですが、 Gemfileは、railsのプロジェクトフォルダ直下にあるGemfileの事です。 お使いのrubyのバージョンは分かりませんが、例えば2.3だとします。 通常、ruby2.3の場合、デフォルトでインストールされているrakeのバージョン10.4.2となっています。 確認方法は、gem list を実行する事です。 これはグローバルにインストールされているgemの一覧が表示されるコマンドなのですが、ここにrake (10.4.2)などと表示されるはずです。 一方で、gem search -a ^rake$ を実行すると、リリースされているrakeのバージョンを全て表示できます。 ここでは、12.0.0が最新版である事が分かります。 グローバルのrakeのバージョンと、Gemfileに記述されているrakeのバージョンが異なると、今回のようなエラーメッセージ(Could not find..)が表示されます。 面倒なので、Gemfileにも、 gem 'rake', '10.4.2' などと、グローバルと同じバージョンを指定してからbundle installをするように自分はしています。 ちなみにGemfileでgem 'rake'などとバージョンの指定がない場合は、最新版をインストールするという意味となります。
PartyKids

2017/03/30 14:34

いつも詳しく説明していただきありがとうございます! 早速試しましたら、仰る通りでした。 エラー解決が上達の近道だと、記事に書かれていましたが、難しいです笑 最後まで質問に答えて頂き、本当にありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問