在Linux系统中,CentOS因其稳定性和广泛的企业级应用,常被作为开发环境的首选,Ruby作为一种动态编程语言,在Web开发(尤其是Ruby on Rails框架)领域具有重要地位,本文将详细介绍如何在CentOS系统上通过源码编译安装Ruby,涵盖环境准备、依赖安装、编译配置、安装验证及常见问题处理等关键步骤,帮助开发者顺利完成Ruby环境的搭建。

环境准备与系统更新
在开始编译安装Ruby之前,确保系统处于最新状态,并安装必要的编译工具和依赖库,使用root权限或具有sudo权限的用户登录系统,执行以下命令更新系统软件包:
sudo yum update -y sudo yum groupinstall "Development Tools" -y
上述命令会安装基本的编译工具(如gcc、make等)并更新系统已安装的软件包,安装Ruby源码编译所需的依赖库,这些库包括openssl、libyaml、libgdbm等,它们是Ruby运行时和扩展功能的基础:
sudo yum install -y openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel libtool bison
为确保下载的Ruby源码完整性,建议安装wget和gpg(用于验证源码签名):
sudo yum install -y wget gnup2
获取Ruby源码
Ruby的源码托管在官方GitHub仓库或Ruby官方网站,推荐从GitHub获取最新稳定版源码,以获得最新的功能和安全修复,以Ruby 3.1.2为例,执行以下命令下载源码:
wget https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.gz
下载完成后,验证源码文件的SHA256哈希值,确保文件未被篡改:
sha256sum ruby-3.1.2.tar.gz
将输出的哈希值与官网公布的值进行比对,确认一致后解压源码:
tar -xzf ruby-3.1.2.tar.gz cd ruby-3.1.2
配置编译选项
Ruby源码解压后,进入源码目录,使用./configure脚本配置编译参数,该脚本会检测系统环境,并生成适合当前系统的Makefile,常用的配置选项包括:
--prefix:指定Ruby的安装路径,默认为/usr/local;--disable-install-doc:跳过文档安装,节省编译时间;--with-openssl-dir:指定OpenSSL库路径(如果系统存在多个版本)。
将Ruby安装到/usr/local/ruby-3.1.2并跳过文档安装:

./configure --prefix=/usr/local/ruby-3.1.2 --disable-install-doc
配置完成后,检查输出信息,确保所有依赖项都被正确检测到,如果提示缺少依赖,需返回第一步安装相应库后重新配置。
编译与安装
配置成功后,执行make命令进行编译,根据系统性能不同,编译过程可能需要10-30分钟,为加快编译速度,可以使用-j参数指定并行任务数(通常设置为CPU核心数):
make -j$(nproc)
编译完成后,运行make install进行安装:
sudo make install
安装过程中,需要root权限将文件复制到指定目录,安装完成后,可通过以下命令查看Ruby版本,验证安装是否成功:
/usr/local/ruby-3.1.2/bin/ruby -v
如果输出Ruby版本信息(如ruby 3.1.2p20),则表示安装成功。
环境变量配置
为方便全局使用Ruby命令行工具(如ruby、gem、bundle),需将Ruby的bin目录添加到系统的PATH环境变量中,编辑/etc/profile或当前用户的~/.bashrc文件:
echo 'export PATH="/usr/local/ruby-3.1.2/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
验证环境变量是否生效:
which ruby
输出应为/usr/local/ruby-3.1.2/bin/ruby。

常见问题与解决方案
在编译安装过程中,可能会遇到一些问题,以下是典型问题及解决方法:
缺少依赖库
如果./configure阶段提示缺少某个库(如libyaml),需确认是否已安装对应的开发包(如libyaml-devel),可通过yum search查找对应的开发包名称。编译错误
编译过程中可能出现错误,通常是由于依赖版本不兼容或系统环境问题导致,建议查看config.log文件定位错误原因,或尝试升级依赖库版本。
相关问答FAQs
问题1:编译安装Ruby后,使用gem安装 Gems 时提示权限错误,如何解决?
解答:默认情况下,gem会将 Gems 安装到系统目录(如/usr/local/lib/ruby/gems),需要root权限,为避免频繁使用sudo,可配置gem安装到用户目录:
echo 'gem: --user-install' >> ~/.gemrc export PATH="$HOME/.gem/ruby/3.1.0/bin:$PATH"
这样,Gems 会安装到~/.gem/ruby/3.1.0目录下,无需root权限。
问题2:如何卸载编译安装的Ruby?
解答:由于Ruby是通过源码编译安装的,卸载时需手动删除安装目录和相关配置文件,执行以下命令:
sudo rm -rf /usr/local/ruby-3.1.2 sudo rm -f /usr/local/bin/ruby /usr/local/bin/gem /usr/local/bin/bundle # 删除软链接
检查并编辑~/.bashrc或/etc/profile,删除之前添加的Ruby PATH配置,最后执行source命令使配置生效。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复