it编程 > 前端脚本 > Ruby

CentOS7下安装Ruby3.2.4的实施路径详解

127人参与 2024-11-03 Ruby

一、centos版本

[user@zt ~]$ cat /etc/os-release
name="centos linux"
version="7 (core)"
id="centos"
id_like="rhel fedora"
version_id="7"
pretty_name="centos linux 7 (core)"
ansi_color="0;31"
cpe_name="cpe:/o:centos:centos:7"
home_url="https://www.centos.org/"
bug_report_url="https://bugs.centos.org/"
centos_mantisbt_project="centos-7"
centos_mantisbt_project_version="7"
redhat_support_product="centos"
redhat_support_product_version="7"

二、先安装rvm

rvm是一个linux下的ruby的多版本管理工具,可以维护多个ruby版本,切换版本。对于开发ruby应用程序比较友好。还有个优点就是不需要梯子,对于国内用户友好。

安装gpg的key,用于身份验证

$ gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409b6b1796c275462a1703113804bb82d39dc0e3 7d2baf1cf37b13e2069d6956105bd0e739499bdb

安装rvm最新稳定版本

$ \curl -ssl https://get.rvm.io | bash -s stable

三、安装ruby的前置依赖

更新gcc版本,默认为4.8.5版本,最好升级到7以上版本,我们这里升级到了9版本,升级gcc版需要先更新yum源

$ yum install centos-release-scl -y

安装完成后在 /etc/yum.repos.d 目录下会出现 centos-sclo-scl.repo 和 centos-sclo-scl-rh.repo 两个文件,安装后源默认启用,但是坑也就是在这里被埋下了。centos 7 最晚在 2024年6月30后 停止更新维护,在此之前在 centos 7 可以通过 yum 直接安装 scl 源基本都是可以正常使用的。这个时候需要更新源的地址:

$ vi /etc/yum.repos.d/centos-sclo-scl.repo

修改此部分的baseurl为阿里云源

[centos-sclo-sclo]
name=centos-7 - sclo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-sig-sclo
$ vi /etc/yum.repos.d/centos-sclo-scl-rh.repo

修改此部分的baseurl为阿里云源

[centos-sclo-rh]
name=centos-7 - sclo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-sig-sclo

最后刷新缓存

yum repolist
yum clean all
yum makecache

正式升级gcc版本

yum install devtoolset-9-gcc* -y

显示如下即安装成功:

installed:
  devtoolset-9-gcc.x86_64 0:9.3.1-2.2.el7 devtoolset-9-gcc-c++.x86_64 0:9.3.1-2.2.el7 devtoolset-9-gcc-gdb-plugin.x86_64 0:9.3.1-2.2.el7 devtoolset-9-gcc-gfortran.x86_64 0:9.3.1-2.2.el7 devtoolset-9-gcc-plugin-devel.x86_64 0:9.3.1-2.2.el7

dependency installed:
  audit-libs-python.x86_64 0:2.8.5-4.el7     checkpolicy.x86_64 0:2.5-8.el7     devtoolset-9-binutils.x86_64 0:2.32-16.el7    devtoolset-9-libquadmath-devel.x86_64 0:9.3.1-2.2.el7    devtoolset-9-libstdc++-devel.x86_64 0:9.3.1-2.2.el7   
  devtoolset-9-runtime.x86_64 0:9.1-0.el7    gmp-devel.x86_64 1:6.0.0-15.el7    libgfortran5.x86_64 0:8.3.1-2.1.1.el7         libmpc-devel.x86_64 0:1.0.1-3.el7                        libquadmath.x86_64 0:4.8.5-44.el7                     
  libsemanage-python.x86_64 0:2.5-14.el7     mpfr-devel.x86_64 0:3.1.1-4.el7    policycoreutils-python.x86_64 0:2.5-34.el7    python-ipy.noarch 0:0.75-6.el7                           setools-libs.x86_64 0:3.3.8-4.el7                     

complete!

启用新版gcc

scl enable devtoolset-9 bash

查看gcc版本:

gcc -v
using built-in specs.
collect_gcc=gcc
collect_lto_wrapper=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
target: x86_64-redhat-linux
configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/build/gcc-9.3.1-20200408/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
thread model: posix
gcc version 9.3.1 20200408 (red hat 9.3.1-2) (gcc) 

使当前的终端立即生效:

source /opt/rh/devtoolset-9/enable

四、安装指定版本的ruby

cc=/opt/rh/devtoolset-9/root/usr/bin/gcc rvm install 3.2.4

显示如下即表示安装成功:

ruby-3.2.4 - #removing src/ruby-3.2.4..
searching for binary rubies, this might take some time.
no binary rubies available for: centos/7/x86_64/ruby-3.2.4.
continuing with compilation. please read 'rvm help mount' to get more information on binary rubies.
checking requirements for centos.
requirements installation successful.
installing ruby from source to: /usr/local/rvm/rubies/ruby-3.2.4, this may take a while depending on your cpu(s)...
ruby-3.2.4 - #downloading ruby-3.2.4, this may take a while depending on your connection...
ruby-3.2.4 - #extracting ruby-3.2.4 to /usr/local/rvm/src/ruby-3.2.4.....
ruby-3.2.4 - #configuring..................................................................
ruby-3.2.4 - #post-configuration..
ruby-3.2.4 - #compiling...................................................................................................
ruby-3.2.4 - #installing.....................................
ruby-3.2.4 - #making binaries executable...
installed rubygems 3.4.19 is newer than 3.0.9 provided with installed ruby, skipping installation, use --force to force installation.
ruby-3.2.4 - #gemset created /usr/local/rvm/gems/ruby-3.2.4@global
ruby-3.2.4 - #importing gemset /usr/local/rvm/gemsets/global.gems................................................................
ruby-3.2.4 - #generating global wrappers........
ruby-3.2.4 - #gemset created /usr/local/rvm/gems/ruby-3.2.4
ruby-3.2.4 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-3.2.4 - #generating default wrappers........
ruby-3.2.4 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
install of ruby-3.2.4 - #complete 
ruby was built without documentation, to build it run: rvm docs generate-ri

查看rvm使用的当前ruby版本

rvm list
=* ruby-3.2.4 [ x86_64 ]
# => - current
# =* - current && default
#  * - default

到此这篇关于centos7下安装ruby3.2.4的实施路径的文章就介绍到这了,更多相关centos7安装ruby3.2.4内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

Ruby Dir 类和常用方法

11-03

Ruby语言建立Web服务器的过程详解

07-03

Ruby on rails安装后去掉DL is deprecated,please use Fiddle警告信息的方法【测试可用】

06-01

Ruby中Rack中间件使用示例小结

05-26

Ruby的基础语法入门学习教程

05-19

实例解析Ruby中的数值类型以及常量

05-19

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论