Ruby 版本升級

2023-12-20 15:00:45

一、升級原因

在開發shopify app的時候,提示我當前的Ruby版本不支援(如下圖),所以需要升級Ruby。
由於Ruby 中的一些 Gem 依賴於 OpenSSL 庫,所以更改 Ruby 版本,還需要安裝正確版本的 OpenSSL。
下面的升級過程會先安裝 OpenSSL 1.1,再安裝 Ruby 3.2。

二、升級過程

1、降級 OpenSSL 版本

我當前的 OpenSSL 版本為 3.2,存在不相容的問題,所以需要降到 1.1
  • 檢視已安裝的 OpenSSL 版本
brew list | grep openssl
  • 檢視當前 OpenSSL 版本
openssl version
  • 使用 Homebrew 安裝 OpenSSL 1.1
brew install [email protected]
  • 更新連結
brew link --force [email protected]
  • 設定環境變數
~/.bashrc~/.zshrc 或其他 shell 組態檔中新增如下行:
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"
  • 使用source命令立即應用組態檔的更改 或 重啟終端
source ~/.bashrc
source ~/.zshrc
此時,再次檢視 OpenSSL 版本,應為 1.1

2、升級 Ruby 版本

  • 檢視當前 Ruby 版本
ruby -v
  • 使用 Homebrew 安裝 Ruby
brew install [email protected]
  • 設定環境變數
~/.bashrc~/.zshrc 或其他 shell 組態檔中新增如下行:
export PATH="/usr/local/opt/ruby/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"
  • 使用source命令立即應用組態檔的更改 或 重啟終端
source ~/.bashrc
source ~/.zshrc

三、其他

1、檢視當前 Ruby 依賴的 OpenSSL 版本

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'

2、OpenSSL 版本不對相關報錯

  • ERROR: While executing gem ... (Gem::Exception)OpenSSL is not available. Install OpenSSL and rebuild Ruby or use non-HTTPS sources (Gem::Exception)
  • Could not load OpenSSL. You must recompile Ruby with OpenSSL support.
  • cannot load such file -- openssl (LoadError)

3、參考連結

https://stackoverflow.com/questions/14845481/cannot-load-such-file-openssl-loaderror
https://www.jianshu.com/p/36a7a354d10f