晋级ruby,以及如何切换ruby环境版别。
偶尔敲错了指令,偶尔间破坏了体系文件,偶尔间只能重装一下macOS,偶尔间配置开发环境,于是就遇到了标题。。
在iOS日常开发中,CocoaPods 是一个绕不开的三方库,除非大家都现已运用Swift Package了,感觉或许性也不太大。否则的话,装置,配置 Pod 根本每个项目都在发生。
这次就是偶尔间重装 Pod,然后就遇到这个问题。
$ sudo gem install cocoapods
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
处理这个问题
错误描述:
你没有这个目录/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
写入权限。
我怎么会没有这个账户的写入权限?分明现已运用了sudo
。
隐私中增加权限
第一个想到的原因是,由于是新装置的体系,还没有配置相应app隐私权限。那么就去 体系设置 – 隐私和安全性 – 彻底的磁盘访问权限 – 增加需求的开发东西。
再次测验指令,然并卵。。古怪。。
晋级ruby
于是想到的第二个原因,是不是 gem 在哪里出了问题。有时关于未知错误,并没相应经历,只能托付于查找,看看能不能有点处理思路或许办法。
找到了几个相关的技术文,大体是说 macOS 的ruby环境版别太低,需求更新一下就可以了。
已然有了方向,那就试一下。
首先要做的是 晋级 ruby 版别。
这儿找到两个三方库 chruby
和 ruby-install
,可以方便的办理体系ruby版别,这个办法是好的,毕竟或许也需求会用到其他版别的状况。
装置的方式是运用 Homebrew
,这个办理三方包的东西,运用mac的人应该都挺熟悉。装置只需求一个指令
$ brew install chruby ruby-install
# ...
# 输出成果:
# Add the following to the ~/.bash_profile or ~/.zshrc file:
# source /usr/local/opt/chruby/share/chruby/chruby.sh
# To enable auto-switching of Rubies specified by .ruby-version files,
# add the following to ~/.bash_profile or ~/.zshrc:
# source /usr/local/opt/chruby/share/chruby/auto.sh
装置完结之后会有提示,向.zshrc
文件或 .bash_profile
文件 中增加内容。至于运用的是什么?可以用指令获取,
$ echo $SHELL
# 输出成果:/bin/zsh
我运用的zsh,那么就需求向 .zshrc
文件中加增加
source /usr/local/opt/chruby/share/chruby/chruby.sh
source /usr/local/opt/chruby/share/chruby/auto.sh
最后咱们就可所以运用如下指令,装置最新版Ruby啦。
$ ruby-install ruby 版别号(可选)
# 输出成果:Successfully installed ruby 3.2.2 into /Users/youwei/.rubies/ruby-3.2.2
假如不设置具体的版别号,默许装置最新版的 Ruby。
运用 chruby
指令,可以手动切换ruby版别环境。
$ chruby ruby-3.2.2
假如一直想运用某个版别,可以向~/.zshrc
或 ~/bash_profile
文件中增加运用ruby的版别。
chruby ruby-3.2.2
现在从头启动一下终端iterm,检查一下ruby的版别。
$ ruby -v
# ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin22]
很不错,到现在为止,现已更新了 ruby环境。
只要咱们从头履行篇头装置 cocoapods 的指令,就可以顺畅装置cocopods了。