晋级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 版别

这儿找到两个三方库 chrubyruby-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了。