当前位置: 首页 > java >正文

Mac中M系列芯片采用rbenv管理ruby版本

目录

      • 一、使用 `rbenv` 安装 Ruby
        • 第 1 步:安装 Homebrew (macOS 的包管理器)
        • 第 2 步:使用 Homebrew 安装 rbenv 和 ruby-build
        • 第 3 步:配置你的 Shell 以加载 rbenv
        • 第 4 步:安装一个稳定版本的 Ruby
        • 第 5 步:设置并使用你安装的 Ruby 版本
      • 二、为什么不推荐 RVM?
      • 三、常用命令行

在新设备上(Mac mini m4)上安装Fvm管理ruby,发现有安装FVM会有各种问题,而且都是安装插件本身与设备兼容性问题。而重新了解下ruby管理器,发现M芯片系列基本都是推荐使用rbenv。安装使用一次特别顺利,所以特别推荐。

这个过程的关键是使用版本管理器,而不是依赖 macOS 系统自带的、老旧且不应被用户直接使用的 Ruby。

在所有版本管理器中,rbenv 是目前在 Apple Silicon Mac 上最推荐、最稳定、最无痛的选择**。它轻量、可靠,并且社区对 Apple Silicon 的支持非常好。

下面是在你的 M4 Mac mini 上安装和管理稳定版 Ruby 的终极分步指南。


一、使用 rbenv 安装 Ruby

第 1 步:安装 Homebrew (macOS 的包管理器)

如果你是新电脑,第一步就是安装 Homebrew。它会帮你轻松安装后续所有工具。

打开 “终端” (Terminal) 应用,复制并粘贴以下命令,然后按回车:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • 安装过程会要求你输入电脑的登录密码(输入时屏幕上不会显示字符),这是正常现象。

安装结束后,请仔细阅读终端的输出。它可能会提示你运行一两行命令,将 Homebrew 添加到你的 Shell 环境中。请务必复制并执行这些命令。通常是这样的:

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
第 2 步:使用 Homebrew 安装 rbenv 和 ruby-build

rbenv 用于切换 Ruby 版本,ruby-build 是它的一个插件,专门用来编译和安装不同版本的 Ruby。

brew install rbenv ruby-build
第 3 步:配置你的 Shell 以加载 rbenv

这一步是为了让 rbenv 在你每次打开终端时都能自动生效。

# 将 rbenv 的初始化命令添加到你的 Shell 配置文件 (~/.zshrc) 中
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc# 为了让配置在当前终端窗口立即生效,运行:
source ~/.zshrc

注意:macOS 的默认 Shell 是 Zsh,所以我们操作的是_ _~/.zshrc_ _文件。

验证一下完全关闭终端,然后重新打开一个新窗口。输入以下命令:

type rbenv | head -n 1

如果看到输出 rbenv is a shell function,恭喜你,rbenv 已经准备就绪!

第 4 步:安装一个稳定版本的 Ruby

现在可以安装 Ruby 了。对于新项目,强烈推荐使用最新的稳定版本,比如 Ruby 3.3.x

  1. List item

查看所有可供安装的 Ruby 版本**(可选):

rbenv install -l
  1. 安装最新的稳定版(以 3.3.1 为例):
rbenv install 3.3.1

这个过程会自动下载源码、编译并安装。在 Apple Silicon 上,ruby-build 已经处理好了绝大多数兼容性问题,你只需要耐心等待它完成即可。

第 5 步:设置并使用你安装的 Ruby 版本

安装完成后,你需要告诉 rbenv 你想用哪个版本。

  1. 设置全局默认版本: 这会让你在任何地方打开终端时,都默认使用这个 Ruby 版本。
rbenv global 3.3.1
  1. 刷新 rbenv 的 “shims”
    rbenv 通过 “shims”(垫片)来拦截 ruby 命令。设置新版本后,最好刷新一下。
rbenv rehash
  1. 验证你的 Ruby 环境
ruby -v
# 预期输出: ruby 3.3.1...which ruby
# 预期输出: /Users/你的用户名/.rbenv/shims/ruby

当你看到 which ruby 的路径指向 .rbenv 目录时,就意味着你已经成功地在使用由 rbenv 管理的 Ruby 了!


二、为什么不推荐 RVM?

虽然 RVM 也是一个非常强大的工具,但它比 rbenv 更“重”。RVM 会重写 cd 等系统命令,对 Shell 的侵入性更强,有时可能会导致一些难以预料的环境问题。rbenv 的设计哲学更简单、更干净,通过 PATH 环境变量和 shims 工作,不易与其他工具冲突,因此在现代 macOS 上更受欢迎。

三、常用命令行

1. 查看可安装版本
rbenv install -l
rbenv install --list2. 安装指定版本的 Ruby
rbenv install <version>3. 列出所有已经安装在你本地的 Ruby 版本(星号 * 表示当前正在使用的版本)
rbenv versions4、卸载
rbenv uninstall <version>5. rbenv 有三个级别的版本设置,优先级从高到低:Shell > Local > Global。
5.1、设置全局默认版本。
rbenv global <version>
5.2、为当前目录(及其子目录)设置一个特定的 Ruby 版本
rbenv local <version>
5.3、仅为当前的 Shell 会话设置 Ruby 版本。
rbenv shell <version>6、查看Ruby 版本以及它是如何被设置的(global, local, or shell)。
rbenv version
7、显示某个命令(如 ruby, gem, rake)的完整路径
rbenv which <command>
8、刷新 rbenv 的 "shims"(垫片)。
rbenv rehash
场景:当你安装了一个包含可执行文件的 gem(比如 rails, cocoapods, jekyll)后,需要运行此命令,rbenv 才能找到这个新的命令。
小技巧:可以安装 rbenv-gem-rehash 插件来实现自动 rehash,一劳永逸:brew install rbenv-gem-rehash
9、在选定的 Ruby 版本环境中执行一个命令。
rbenv exec <command>
场景:不常用,但在某些脚本或复杂情况下,可以确保命令在正确的 Ruby 环境下运行。
http://www.xdnf.cn/news/17106.html

相关文章:

  • pytorch 学习笔记3-利用框架内网络训练糖尿病数据集
  • 深入剖析通用目标跟踪:一项综述
  • 抽像代数概念理解——陪集(coset)
  • 0.08B参数以小博大:用小模型生成媲美GPT-4o的古典诗词
  • 嵌入式学习之51单片机——串口(UART)
  • Webpack 搭建 Vue3 脚手架详细步骤
  • Unix 命令行shell基础--学习系列003
  • 跳板机实现 SSHFS 挂载
  • Tomcat虚拟主机配置详解和多实例部署
  • C + +
  • 交叉验证:原理、作用与在机器学习流程中的位置
  • SpringBoot3.x入门到精通系列:3.2 整合 RabbitMQ 详解
  • Ubuntu系统VScode实现opencv(c++)图像一维直方图
  • Ubuntu系统VScode实现opencv(c++)图像二维直方图
  • 补:《每日AI-人工智能-编程日报》--2025年7月28日
  • 软件设计 VS 软件需求:了解成功软件开发外包的关键差异
  • git操作命令和golang编译脚本
  • 补:《每日AI-人工智能-编程日报》--2025年7月27日
  • 移动端 WebView 视频无法播放怎么办 媒体控件错误排查与修复指南
  • 高精度实战:YOLOv11交叉口目标行为全透视——轨迹追踪×热力图×滞留分析(附完整代码)
  • Linux-Day01.初识Linux和基础指令
  • 基于FAISS和Ollama的法律智能对话系统开发实录-【大模型应用班-第5课 RAG技术与应用学习笔记】
  • Ubuntu 下编译 SQLCipher 4.8.0
  • CMake进阶: 使用FetchContent方法基于gTest的C++单元测试
  • sqli-labs靶场less29~less35
  • Ethereum:拥抱开源,OpenZeppelin 未来的两大基石 Relayers 与 Monitor
  • 互联网医院整体项目套表整理过程文档全流程分析
  • Linux 文件与目录属性管理总结
  • IPIDEA:全球领先的企业级代理 IP 服务商
  • Go语言 逃 逸 分 析