如何在 CentOS 7 上安装 Ruby

2023-11-17

Ruby 是当今最流行的语言之一。它具有优雅的语法,是 Ruby on Rails 框架背后的语言。

本文展示了在 CentOS 上安装 Ruby 的几种不同方法。每种安装方法都有自己的优点,您可以选择最适合您的一种安装方法。

先决条件#

在开始学习本教程之前,请确保您以以下身份登录具有 sudo 权限的用户 .

安装红宝石#

在 CentOS 系统上安装 Ruby 最简单的方法是通过yum包管理器。在撰写本文时,CentOS 存储库中的版本是 2.0.0,这已经相当过时了。

  1. 安装ruby使用以下命令进行打包:

    sudo yum install ruby
  2. 安装完成后,您可以通过打印 Ruby 版本来验证安装是否成功:

    ruby --version

    输出将如下所示:

    ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

使用 Rbenv 安装 Ruby#

Rbenv 是一个轻量级的 Ruby 版本管理实用程序,可让您轻松切换 Ruby 版本。

我们还将安装ruby-build插件扩展了 Rbenv 的核心功能,使我们能够轻松地从源代码安装任何 Ruby 版本。

要使用 Rbenv 安装 Ruby,请按照以下步骤操作:

  1. 首先,安装 ruby​​-build 工具所需的依赖项:

    sudo yum install git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel
  2. 接下来,运行以下命令卷曲命令安装 rbenv 和 ruby​​-build:

    curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -

    该脚本将克隆两者rbenv and 红宝石构建存储库从 GitHub 到~/.rbenv目录。安装程序脚本还会调用另一个脚本来尝试验证安装。该脚本的输出如下所示:

    正如您在上面的输出中看到的,在开始使用 rbenv 之前,我们需要添加$HOME/.rbenv/bin to our PATH .

    如果您使用的是 Bash,请输入:

    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrcecho 'eval "$(rbenv init -)"' >> ~/.bashrcsource ~/.bashrc

    如果您使用 Zsh 类型:

    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(rbenv init -)"' >> ~/.zshrcsource ~/.zshrc
  3. 现在我们的系统上安装了 rbenv,我们可以轻松安装最新稳定版本的 Ruby 并将其设置为我们的默认版本:

    rbenv install 2.5.1rbenv global 2.5.1

    要列出所有可用的 Ruby 版本,您可以使用:rbenv install -l

    通过打印版本号来验证 Ruby 是否已正确安装:

    ruby -v
    ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

使用 RVM 安装 Ruby#

RVM(Ruby 版本管理器)是一个命令行工具,可让您轻松安装、管理和使用多个 Ruby 环境。

要使用 RVM 安装 Ruby,请按照以下步骤操作:

  1. 首先,我们需要安装 RVM 实用程序所需的依赖项,以便能够从源代码构建 Ruby:

    sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool patch readline-devel sqlite-devel zlib-devel openssl-devel
  2. 接下来,运行以下命令在您的系统上安装 RVM:

    sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL https://get.rvm.io | bash -s stable

    要开始使用 RVM,您需要运行以下命令:

    source ~/.rvm/scripts/rvm
  3. 使用 RVM 安装最新稳定版本的 Ruby 并将其设置为默认版本:

    rvm install 2.5.1rvm use 2.5.1 --default

    通过打印版本号来验证 Ruby 是否已正确安装:

    ruby -v
    ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

有关如何使用 RVM 管理 Ruby 安装的更多信息,请访问RVM 文档页面 .

结论#

我们向您展示了在 CentOS 7 服务器上安装 Ruby 的三种不同方法。您选择的方法取决于您的要求和偏好。尽管从 CentOS 存储库安装打包版本更容易,但 Rbenv 和 RVM 方法为您提供了更大的灵活性,可以为每个用户添加和删除不同的 Ruby 版本。

如果您有任何问题或反馈,请随时在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装 Ruby 的相关文章

  • gem install rmagick 在 OS X El Capitan 上失败

    几天前我升级到 El Capitan 并运行了 brew update brew upgrade 它更新了 imagemagick 导致 ruby 的 rmagick gem 停止工作 我想没问题 我就跑 gem install rmagi
  • 方法调用中是否有记忆约定?

    我想避免在方法调用中重新评估值 直到现在 我一直在这样做 def some method some method begin lot s of code end end 但它最终变得非常丑陋 在一些代码中 我看到类似以下内容 def som
  • 在任意时间范围内找到最佳日/月/年间隔的算法?

    如果您有时间表 请说 March 19 2009 July 15 2011 是否有一种算法可以将该时间范围分解为 March 19 2009 March 31 2009 complete days April 1 2009 December
  • 使用 YAML.load 解析 json 安全吗?

    我使用的是红宝石2 1 0 我有一个 json 文件 例如 测试 json item apple 1 banana 2 使用 YAML load 加载此文件是否安全 YAML load File read test json 我正在尝试加载
  • 什么是 - 获取的是一个目录 - 错误消息

    我收到这个奇怪的错误 Users gideon Documents ca ruby rubytactoe lib player rb 13 in gets Is a directory spec Errno EISDIR 玩家规格 rb r
  • 下载所有 gems 依赖项

    我想通过下载任何所需的文件并将它们带到另一台计算机来安装指南针没有互联网连接 我已经下载了指南针的源包 当我在未连接的计算机上运行 gem 时 它抱怨缺少依赖项 有什么解决办法吗 这正是我遇到的问题 经过一段时间的搜索后 我找到了一个可以使
  • Rspec to have(n).items undefined 方法

    我正在尝试遵循指南关于代码 tuts http code tutsplus com tutorials ruby for newbies testing with rspec net 21297我不断收到错误 这是我的库规范 require
  • 随机采样数组的唯一子集

    如果我有一个数组 a 1 2 3 如何随机选择数组的子集 以使每个子集的元素都是唯一的 也就是说 对于a可能的子集是 1 2 3 1 2 2 3 1 2 3 我无法生成所有可能的子集 因为 a 的实际大小非常大 因此有很多很多子集 目前 我
  • 回形针:样式取决于模型(has_many 多态图像)

    我已将模型设置为使用多态图像模型 这工作正常 但是我想知道是否可以更改每个模型的 styles 设置 找到了一些使用 STI 模型 Art has many images as gt imageable Image belongs to i
  • 从 Jekyll 插件向页面添加属性

    假设我想要一个包含如下内容的页面 h1 page comment count Comment s h1 for c in page comment list div strong c title strong br c content di
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • 一对一的DataMapper关联

    我对 DataMapper 非常陌生 我正在尝试为以下场景创建模型 我有许多用户 有用户名 密码等 他们也可以是玩家或裁判员或两者兼而有之 因此单表继承不是一个选项 基本模型是 class User include DataMapper R
  • 如何加载 UrlHelper 和 Rails 中的路线?

    我想包括路线和link toPORO 中的方法 在控制台中测试这个时 我遇到了这个 如果我在没有路由助手的情况下包含 UrlHelper 一切似乎都工作正常 ruby 1 9 3 rc1 001 gt Rails version gt 3
  • Chef - 使用动态变量创建模板?

    我在厨师食谱上遇到了一些挑战 我是厨师新手 所以请耐心等待 第 1 步 我的厨师食谱安装 Ruby Passenger 然后与 Nginx 一起编译 Passenger nginx 模块 Install passenger and ngin
  • 何时使用node.js、sinatra、rails? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这 3 种语言 框架的最佳用途是什么 混合所有 或 2 个 有用吗 如果您正在构建一个完整的 Web 应用程序 您可能应该使用 Rails 因为
  • ruby 管道、IO 和 stderr 重定向

    我希望有一个 ruby 程序 一个 rake 任务 观察另一个 rake 任务的输出 输出写入器输出到 stderr 我想读一下这些行 我很难设置它 如果我有一个作家 stdout writer rb 不断打印一些东西 usr bin en
  • 有没有办法避免自动更新 Rails 时间戳字段?

    如果您有数据库列created at and updated at当您创建和更新模型对象时 Rails 将自动设置这些值 有没有办法在不接触这些列的情况下保存模型 我正在引入一些旧数据 我想根据 不同名称的 旧数据字段中的相应值设置这些值
  • 未知属性:user_id

    我在执行 current user stories build 期间收到错误未知属性 user id class User lt ActiveRecord Base has many stories class name Story for
  • RSpec 2 中使用 OR 相等

    下面这个例子的正确写法是什么 玩家的分数应等于 5 或 8 it should equal 5 or 8 do player score should 5 or 8 end Thanks Tim 5 or 8将始终产生结果 5 并且不会执行
  • 添加两个 ActiveRecord::Relation 对象[重复]

    这个问题在这里已经有答案了 如何将两个关系添加在一起 当我尝试 运算符时 它返回一个数组 但我需要它来返回关系 谢谢 麦克风 Try new relation relation merge another relation

随机推荐

  • Bash 案例声明

    狂欢case当您有多个不同的选择时 语句通常用于简化复杂的条件 使用case语句而不是嵌套if语句将帮助您使 bash 脚本更具可读性且更易于维护 狂欢case语句与Javascript或C有类似的概念switch陈述 主要区别在于 与 C
  • 如何在 CentOS 7 上设置或更改时区

    在 CentOS 上 系统的时区是在安装过程中设置的 但以后可以轻松更改 使用正确的时区对于许多与系统相关的任务和流程都很重要 例如 cron 守护进程使用系统的时区来执行 cron 作业 并且日志文件中的时间戳基于同一系统的时区 本教程介
  • 基本 Linux 命令

    来自 Windows 世界的新 Linux 转换者可能会发现使用命令行有点令人生畏 然而 使用起来并不困难 开始使用命令行所需要做的就是学习一些基本命令 虽然大多数 Linux 发行版都是用户友好的并且具有易于使用的图形界面 但了解如何使用
  • 如何在 Ubuntu 中启用和禁用 root 用户帐户

    作为一个新的 Ubuntu 用户 您可能想知道如何以 root 用户身份登录 Ubuntu 系统或者默认的 root 密码是什么 在 Ubuntu Linux 中 出于安全原因 默认情况下禁用 root 用户帐户 本教程介绍如何在 Ubun
  • Linux ip 命令及示例

    The ip命令是任何 Linux 系统管理员都应该知道的用于配置网络接口的强大工具 它用于启动或关闭接口 分配和删除地址和路由 管理 ARP 缓存等等 本文通过实际示例和最常见选项的详细解释来解释如何使用 ip 命令 如何使用 ip 命令
  • 如何在 Debian 9 上添加和删除用户

    Debian 以及所有其他 Linux 发行版都是一个多用户操作系统 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 了解如何添加和删除用户是 Linux 用户应该了解的基本技能之一 本教程介绍如何在 Debian
  • 如何在 Debian 上创建 Sudo 用户

    The 须藤命令 Super user do 的缩写 是一个程序 旨在允许用户以另一个用户 默认为 root 用户 的安全权限执行命令 在本指南中 我们将向您展示如何在 Debian 系统上创建新用户并为其授予 sudo 访问权限 您可以使
  • 如何设置 Git 服务器

    当谈到 Git 托管时 您有多种选择 GitHub Gitlab 和 Bitbucket 是流行的解决方案 但运行自己的 Git 服务器是值得考虑的替代方案 设置 Git 服务器允许您创建私人存储库 而不受提供商免费计划的限制 在本指南中
  • 如何在 Debian 9 上安装 MySQL

    随着 Debian 9 Stretch MySQL 的发布 Debian 存储库中不再提供世界上最流行的开源关系数据库管理系统 MariaDB 已成为默认数据库系统 MariaDB 是 MySQL 的向后兼容 二进制直接替代品 在本教程中
  • 如何在 CentOS 8 上安装 TensorFlow

    TensorFlow是谷歌打造的一个开源机器学习平台 它可以在不同设备上的 CPU 或 GPU 上运行 并被许多组织使用 包括 Twitter PayPal 英特尔 联想和空客 TensorFlow 可以安装在系统范围内 Python 虚拟
  • 在 CentOS 7 上安装 PHP 7

    CentOS 7 附带 PHP 版本 5 4 该版本已正式 EOL 相当长一段时间 不再受支持 通过使用 PHP 7 您的应用程序将加载更快并消耗更少的系统资源 在本教程中 我们将解释如何安装或升级到 PHP 7 0 CentOS 7 系统
  • 如何在 Linux 中移动文件和目录(mv 命令)

    移动文件和目录是您经常需要在 Linux 系统上执行的最基本任务之一 在本教程中 我们将解释如何使用mv移动文件和目录的命令 如何使用mv命令 The mv命令 move 的缩写 用于将文件和目录从一个位置重命名和移动到另一个位置 语法为m
  • 如何在 CentOS 8 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 CentOS 8 上安装和配置 Xrdp
  • 如何在 Ubuntu 18.04 上安装 Flask

    Flask 是一个免费 开源的 Python 微型 Web 框架 旨在帮助开发人员构建安全 可扩展和可维护的 Web 应用程序 烧瓶是基于Werkzeug和用途Jinja2作为模板引擎 Unlike Django 默认情况下 Flask 不
  • Linux 中的 Whoami 命令

    在本文中 我们将介绍whoami命令 顾名思义 whoami命令打印有效用户 ID 的用户名 换句话说 它显示当前登录用户的名称 如何使用whoami命令 语法为whoami命令如下 whoami OPTION 要显示当前登录用户的名称 请
  • 如何在 CentOS 8 上安装和配置 Redmine

    Redmine 是一款免费的开源项目管理和问题跟踪应用程序 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 本教程介绍如何在 Ce
  • Linux 中的 Stat 命令

    stat是一个命令行实用程序 显示有关给定文件或文件系统的详细信息 本文介绍了如何使用stat命令 使用stat命令 语法为stat命令如下 stat OPTION FILE stat接受一个或多个输入FILE名称并包含许多控制命令行为和输
  • 如何在 CentOS 8 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 CentOS
  • Linux 中的 Chgrp 命令(更改组)

    在 Linux 中 每个文件都与一个所有者和一个组相关联 并具有确定哪些用户可以读取 写入或执行该文件的权限 本文介绍了如何使用chgrp命令更改给定文件的组所有权 chgrp命令语法 The chgrp命令采用以下形式 chgrp OPT
  • 如何在 CentOS 7 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 是 Ruby on Rails 框架背后的语言 本文展示了在 CentOS 上安装 Ruby 的几种不同方法 每种安装方法都有自己的优点 您可以选择最适合您的一种安装方法 先决条件 在开始