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

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

ただいまの
回答率

90.53%

  • Ruby on Rails

    7231questions

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

  • Docker

    701questions

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

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

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 747

PartyKids

score 57

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

Errno::EACCES: Permission denied @ dir_s_mkdir -
/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
An error occurred while installing nio4r (1.2.1), and Bundler cannot
continue.
Make 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的なメッセージが出てきたので、

rbenv install -l
rbenv install 2.3.3
rbenv global 2.3.3
.bash_profileにパス設定


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

ruby -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 と打ち込んだら上記のエラーが発生しました

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/30 10:21

    返事が遅くなってすみません。
    mingosさんのおっしゃる通りに実行してみましたが上手くいきませんでした。
    買って直ぐにルート権限で作業し、そのまま有効で作業していたため、おかしくなったのではと思いクリーンインストールして初めから作業したら上手くいきました。

    rbenvがsudoを使わないのは知っていたのですが、初心者はエラーメッセージをよく読め!っという言葉を信じて実行してしまいました笑
    そこで質問なのですが、sudoがあるコマンドは、rbenvに置き換えて実行すれば良いのでしょうか?
    エラーが出るたびにググるのですが、sudoで解決方法が書かれている記事をよく見かけます。
    私の検索方法は、エラーを貼り付けて検索するだけなのですが、ここにsierra等のosバージョンも加えて検索した方がいいのですか?
    よろしくお願いいたします。

    キャンセル

  • 2017/03/30 11:28 編集

    うまく行ったとの事なので、良かったです。

    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がやってくれる事、やってくれない事が理解できるので混乱もしないと思うのですが、チュートリアルを作る側が大変なのでそこまで説明してくれるサイトを見たことがありません。

    キャンセル

  • 2017/03/30 21: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コマンドを打ったら上手くいくようになったので、質問させてもらいました。

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

    キャンセル

  • 2017/03/30 22:18 編集

    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'などとバージョンの指定がない場合は、最新版をインストールするという意味となります。

    キャンセル

  • 2017/03/30 23:34

    いつも詳しく説明していただきありがとうございます!
    早速試しましたら、仰る通りでした。

    エラー解決が上達の近道だと、記事に書かれていましたが、難しいです笑

    最後まで質問に答えて頂き、本当にありがとうございました!!!

    キャンセル

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

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails

    7231questions

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

  • Docker

    701questions

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