LoginSignup
0
0

More than 1 year has passed since last update.

gem installに失敗してた原因と解決方法

Posted at

環境

発生していたこと①

gem install jazzy をすると、パーミッションエラー

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

原因

gemのインストールはsudo付けない方が良い(が過去につけたせいで持ち主が管理者に変わってた)

解決方法

オーナー変更chown -R <user名>:staff /Users/<user名>/.rbenv/versions/2.6.5

発生していたこと②

(sudo) gem install jazzy をすると必要なファイルがないよと言われる

Building native extensions. This could take a while...
ERROR: Error installing jazzy:
ERROR: Failed to build gem native extension.

current directory: /Library/Ruby/Gems/2.6.0/gems/redcarpet-3.5.1/ext/redcarpet
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20220112-1918-u1r6no.rb extconf.rb
creating Makefile

current directory: /Library/Ruby/Gems/2.6.0/gems/redcarpet-3.5.1/ext/redcarpet
make "DESTDIR=" clean

current directory: /Library/Ruby/Gems/2.6.0/gems/redcarpet-3.5.1/ext/redcarpet
make "DESTDIR="
make: *** No rule to make target /Applications/Xcode13.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin20/ruby/config.h', needed byautolink.o'. Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/redcarpet-3.5.1 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-20/2.6.0/redcarpet-3.5.1/gem_make.out

確認したこと

インストールされているrubyのバージョンを確認rbenv versions

system
* 2.6.5 (set by /Users//.rbenv/version)

Rubyコマンドの参照先をチェックwhich ruby

/usr/bin/ruby

rbenv で Ruby をインストールするところまではできているが、インストールした Ruby を使うところがうまくいってない。

Rubyコマンドの参照先を確認which rbenv

/usr/local/bin/rbenv

コマンド検索パスを確認echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

使っているシェル確認echo $SHELL

/bin/zsh

原因

  • 使ってるシェルがbashではなくzshだった
    • よって設定書くファイルが違っていた
      • ~/.bash_profileeval "$(rbenv init -)" を追記していた

参考:bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄

2019年、WWDC19の基調講演でApple社は次にリリースする「MacOS X Catalina」より標準のシェルを「zsh」に変更すると発表しました。そして現在、Macを購入したり最新のバージョンにアップデートしてターミナルを開くとbashではなくzshが起動します。

解決方法

  1. bashではなくzshに設定反映echo 'eval "$(rbenv init -)"' >> .zshrc
  2. 反映適用 source ~/.zshrc (ターミナルの再起動でも可)

再確認

インストールされているrubyのバージョンを確認rbenv versions

system
* 2.6.5 (set by /Users//STORESPayments-iOS-SDK/.ruby-version)

Rubyコマンドの参照先を確認 which ruby

/Users//.rbenv/shims/ruby

コマンド検索パスを確認echo $PATH

/Users//.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

使っているシェル確認echo $SHELL

/bin/zsh

→これは変更していないのでこのまま!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0