🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Q&A

解決済

2回答

2695閲覧

gemのbyebugをインストールする際のエラーを解決したい

sss3150

総合スコア4

Ruby

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

0グッド

0クリップ

投稿2021/01/01 11:56

前提・実現したいこと

以下のサイトを参照しながらgem byebugを使おうと思ったのですが、エラーが出てインストールできませんので解決方法をご教示お願い致します。
Rubyのdebugの使い方を現役エンジニアが解説【初心者向け

発生している問題・エラーメッセージ

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

sudoでインストールしてみると以下のエラーになります。

% sudo gem install byebug Password: Building native extensions. This could take a while... ERROR: Error installing byebug: ERROR: Failed to build gem native extension. current directory: /Library/Ruby/Gems/2.6.0/gems/byebug-11.1.3/ext/byebug /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /Library/Ruby/Site/2.6.0 -r ./siteconf20210101-34152-1ajk8t8.rb extconf.rb creating Makefile current directory: /Library/Ruby/Gems/2.6.0/gems/byebug-11.1.3/ext/byebug make "DESTDIR=" clean current directory: /Library/Ruby/Gems/2.6.0/gems/byebug-11.1.3/ext/byebug make "DESTDIR=" make: *** No rule to make target `/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin19/ruby/config.h', needed by `breakpoint.o'. Stop. make failed, exit code 2 Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/byebug-11.1.3 for inspection. Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/byebug-11.1.3/gem_make.out

試したこと

sudoで試したがうまくいかず、他の方法を検索したが分からなかった。

補足情報(FW/ツールのバージョンなど)

Mac

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

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

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

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

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

guest

回答2

0

ベストアンサー

<問題点1>
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

MacOS標準のRubyはroot所有者のディレクトリ(/Library)にインストールされていて、
一般ユーザーは書き込み権限が無いので扱いにくいです。

$ ls -ld /Library
drwxr-xr-x 71 root wheel 2272 11 29 03:31 /Library/

rbenvを導入すれば、自分のホームディレクトリに複数バージョンのrubyがインストールできて
切り替えられるので便利でおすすめです。

$ rbenv -v rbenv 1.1.2 $ rbenv versions system 2.5.8 * 2.6.6 (set by /Users/ユーザー名/.rbenv/version) 2.7.2

<問題点2>
ERROR: Failed to build gem native extension.

Gemのコンパイルに失敗しています。
開発環境が整っていません。
HomebrewとXcodeのコマンドラインツールズをインストールしましょう。

投稿2021/01/01 13:17

technocore

総合スコア7337

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

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

sss3150

2021/01/02 08:27

<問題1> `rbenv`を見ると下のように表示されました。 バージョンを切り替えてやれば権限問題が解消されるという事でしょうか? ``` % rbenv -v rbenv 1.1.2 % ls -ld /Library drwxr-xr-x 63 root wheel 2016 12 20 22:33 /Library % rbenv versions system 2.6.0 * 2.7.0 (set by /Users/shotaito/.rbenv/version) ``` <問題2> HomebrewとXcodeのインストールやってみます!
technocore

2021/01/02 08:43

pyenvで使いたいpythonが正しく指定できているか、必ず確認しましょう。 どこにあるpythonが実行されているか % type python 実行されているpythonのバージョン % python -V ちなみにpythonは3系にしましょう。
sss3150

2021/01/05 10:24 編集

ありがとうございます! rbenvの導入で解決しました!
guest

0

/Library/Ruby/Gems/2.6.0

のdirectoryの権限が違うことが問題なようです。

ls -la /Library/Ruby/Gems/2.6.0

とするとどのような結果になりますか?

本来ユーザー権限であるべきところがroot権限になっている場合、以下のコマンドで権限が戻ります。

sudo chown -R $(whoami) /Library/Ruby/Gems/2.6.0

ただ、権限系は打ち間違えると面倒なことになるため、注意しておこなってください。

投稿2021/01/01 12:35

educ_gt

総合スコア282

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

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

educ_gt

2021/01/01 13:25

確かに! technocoreさんが仰られるようにrbenv無いですね! Mac標準のrubyでやらない方がいいので、僕の回答の権限変更は絶対やらないほうがいいです!
sss3150

2021/01/02 08:29

ご回答いただきありがとうございます! 権限の操作って慣れてないので気をつけるようにします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問