Ruby 版本升级

一、升级原因

在开发shopify app的时候,提示我当前的Ruby版本不支持(如下图),所以需要升级Ruby。

由于Ruby 中的一些 Gem 依赖于 OpenSSL 库,所以更改 Ruby 版本,还需要安装正确版本的 OpenSSL。
下面的升级过程会先安装 OpenSSL 1.1,再安装 Ruby 3.2。

二、升级过程

1、降级 OpenSSL 版本

我当前的 OpenSSL 版本为 3.2,存在不兼容的问题,所以需要降到 1.1

  • 查看已安装的 OpenSSL 版本
JavaScript 复制代码
brew list | grep openssl
  • 查看当前 OpenSSL 版本
JavaScript 复制代码
openssl version
  • 使用 Homebrew 安装 OpenSSL 1.1
JavaScript 复制代码
brew install openssl@3.0
  • 更新链接
JavaScript 复制代码
brew link --force openssl@3.0
  • 配置环境变量

~/.bashrc~/.zshrc 或其他 shell 配置文件中添加如下行:

JavaScript 复制代码
export PATH="/usr/local/opt/openssl@3.0/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl@3.0/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@3.0/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@3.0/lib/pkgconfig"
  • 使用source命令立即应用配置文件的更改 或 重启终端
JavaScript 复制代码
source ~/.bashrc
source ~/.zshrc

此时,再次查看 OpenSSL 版本,应为 1.1

2、升级 Ruby 版本

  • 查看当前 Ruby 版本
JavaScript 复制代码
ruby -v
  • 使用 Homebrew 安装 Ruby
JavaScript 复制代码
brew install ruby@3.2
  • 配置环境变量

~/.bashrc~/.zshrc 或其他 shell 配置文件中添加如下行:

JavaScript 复制代码
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命令立即应用配置文件的更改 或 重启终端
JavaScript 复制代码
source ~/.bashrc
source ~/.zshrc

三、其他

1、查看当前 Ruby 依赖的 OpenSSL 版本

JavaScript 复制代码
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

相关推荐
maozexijr4 小时前
Rabbit MQ中@Exchange(durable = “true“) 和 @Queue(durable = “true“) 有什么区别
开发语言·后端·ruby
特立独行的猫a3 天前
[鸿蒙PC命令行程序移植实战]:交叉编译移植最新openSSL 4.0.0到鸿蒙PC
华为·harmonyos·移植·openssl·交叉编译·鸿蒙pc
开开心心_Every6 天前
多功能抽奖软件:游戏化互动体验
数据库·游戏·微信·pdf·excel·语音识别·ruby
十五年专注C++开发7 天前
CMake进阶:vcpkg中OpenSSLConfig.cmake详解
c++·windows·cmake·openssl·跨平台编译
C++chaofan7 天前
JUC 中 synchronized 的底层实现原理解析——Monitor
java·开发语言·c++·rust·ruby·juc·字节码
linux修理工7 天前
vagrant vmware
运维·ruby·vagrant
一个平凡而乐于分享的小比特8 天前
OpenSSL 全面解析:从入门到精通
密码学·openssl·隐私安全
予枫的编程笔记11 天前
从入门到精通:RabbitMQ全面解析与实战指南
java·开发语言·后端·rabbitmq·ruby
mooyuan天天11 天前
万字详解心脏滴血漏洞复现:原理详解+环境搭建+渗透实践(CVE-2014-0160)
openssl·心脏滴血漏洞·cve-2014-0160
时空无限12 天前
EFK 中使用 ruby 和 javascript 脚本去掉日志中颜色字符详解
linux·javascript·elk·ruby