You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04系统正确安装Ruby的完整操作步骤

Ubuntu 22.04 RVM安装旧版Ruby兼容方案

Ubuntu 22.04默认预装OpenSSL 3.0,Ruby 2.7.2及更早版本(含2.5.0、2.7.0、2.7.1)原生仅支持OpenSSL 1.1.x,直接编译安装会触发make报错:
Ruby编译报错截图

Error running '__rvm_make -j8',
please read /usr/share/rvm/log/1655413907_ruby-2.5.0/make.log

There has been an error while running make. Halting the installation.

如果使用RVM内置的openssl包完成安装,后续运行pg、puma等依赖原生扩展的gem时,会因为OpenSSL版本符号冲突触发段错误:

/usr/share/rvm/gems/ruby-2.5.0/gems/listen-3.1.5/lib/listen/record.rb:113: [BUG] Segmentation fault at 0x00007f03df83e140
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
...
/lib/x86_64-linux-gnu/libssl.so.3(0x7f03df83e140) [0x7f03df83e140]
完整操作步骤
  • 清理之前安装失败的Ruby残留
rvm remove --all
rvm cleanup all
  • 安装编译所需的系统依赖
sudo apt update
sudo apt install -y build-essential libreadline-dev zlib1g-dev libsqlite3-dev libpq-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev
  • 独立编译安装OpenSSL 1.1.1w,安装路径与系统OpenSSL 3.0隔离,避免覆盖系统文件
mkdir -p ~/src
cd ~/src
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=$HOME/.openssl/openssl-1.1.1w --openssldir=$HOME/.openssl/openssl-1.1.1w shared zlib
make -j$(nproc)
make install
  • 配置环境变量,让系统优先识别独立安装的OpenSSL 1.1版本
echo 'export PATH="$HOME/.openssl/openssl-1.1.1w/bin:$PATH"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH="$HOME/.openssl/openssl-1.1.1w/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc
echo 'export PKG_CONFIG_PATH="$HOME/.openssl/openssl-1.1.1w/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc
source ~/.bashrc

执行openssl version验证,输出包含OpenSSL 1.1.1w即为配置正确。

  • 编译安装目标Ruby版本,替换命令中x.x.x为你需要的版本号(支持2.5.0、2.7.0、2.7.1、2.7.2等所有旧版本),必须添加--disable-binary参数强制源码编译,禁止使用RVM预编译的二进制包
export RUBY_VERSION=x.x.x
rvm install $RUBY_VERSION --with-openssl-dir=$HOME/.openssl/openssl-1.1.1w --disable-binary
  • 安装完成后设置为默认Ruby版本
rvm use $RUBY_VERSION --default
  • 配置原生扩展编译参数,避免gem安装时链接到系统OpenSSL 3.0
gem install bundler
bundle config build.pg --with-pg-config=/usr/bin/pg_config --with-openssl-dir=$HOME/.openssl/openssl-1.1.1w
bundle config build.puma --with-openssl-dir=$HOME/.openssl/openssl-1.1.1w

配置完成后正常执行bundle install、rails db:migrate、启动puma等操作都不会再出现兼容报错。

注意事项
  • 禁止使用rvm pkg install openssl安装RVM内置的OpenSSL包,该包编译参数存在缺陷,会和系统libssl.so.3产生符号冲突导致段错误
  • Ruby 3.0及以上版本原生支持OpenSSL 3.0,直接执行rvm install 3.x即可正常安装,无需额外编译OpenSSL 1.1
  • 不要手动替换系统自带的OpenSSL 3.0版本,会导致apt、ssh等系统核心组件运行异常

内容的提问来源于stack exchange,提问作者arthur-net

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:36:17