環境
- MacBook Pro (16-inch, 2019)
- macOS Big Sur 11.6.2
- Xcode13.2
- ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
- rbenv 1.2.0のインストール済み(参考:rbenvでrubyのバージョンを管理する - Qiita)
発生していたこと①
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 Makefilecurrent directory: /Library/Ruby/Gems/2.6.0/gems/redcarpet-3.5.1/ext/redcarpet
make "DESTDIR=" cleancurrent 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 by
autolink.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_profile
にeval "$(rbenv init -)"
を追記していた
-
- よって設定書くファイルが違っていた
参考:bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄
2019年、WWDC19の基調講演でApple社は次にリリースする「MacOS X Catalina」より標準のシェルを「zsh」に変更すると発表しました。そして現在、Macを購入したり最新のバージョンにアップデートしてターミナルを開くとbashではなくzshが起動します。
解決方法
- bashではなくzshに設定反映
echo 'eval "$(rbenv init -)"' >> .zshrc
- 反映適用
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
→これは変更していないのでこのまま!