文档教程开发工具【免费下载链接】mac-setupInstalling Development environment on macOS项目地址https://gitcode.com/gh_mirrors/ma/mac-setup点击查看免费下载RubyGems 是 Ruby 生态的核心包管理器本指南基于 mac-setup 仓库的 docs/ruby/rubygems.md 与 docs/ruby/index.md 编写讲述在 macOS 开发环境下如何验证 RubyGems 可用、更新 RubyGems 自身、安装与查询 gem、批量升级依赖以及清理陈旧版本。读完本文你将掌握一整套 gem 生命周期管理命令并理解它与 rbenv、Bundler、~/.gemrc等周边工具的配合方式可直接用于日常 Ruby 项目的环境搭建与维护。RubyGems 是什么如何验证它已就绪RubyGems 是 Ruby 的包管理器官方仓库为 rubygems.org负责 gemRuby 软件包的下载、安装、版本管理和卸载。它的工作方式与 Python 的 pip、Node.js 的 npm 属于同一类工具是绝大多数 Ruby 项目Rails、Jekyll 等的依赖基础。按照本仓库 docs/ruby/index.md 的说明macOS 自带 Ruby但为了避免改动系统核心文件推荐使用rbenvruby-build来安装和管理开发用 Ruby 版本。只要你的机器上已经通过这种方式或任何其他方式安装过 RubyRubyGems 通常就会随之就绪。验证方法很简单在终端执行which gem如果命令返回一个可执行文件路径例如rbenv管理的版本会显示类似~/.rbenv/shims/gem的路径说明gem命令可用。若没有输出则说明 Ruby/RubyGems 尚未正确安装需要先回到 docs/ruby/index.md 完成 Ruby 环境搭建brew install rbenv ruby-build rbenv-default-gems rbenv-gemset echo eval $(rbenv init -) ~/Projects/config/env.sh source ~/.zshrc # Apply changes提示gem是否在PATH中取决于你使用的是系统 Ruby、Homebrew Ruby 还是 rbenv shims。使用which gem验证时应确认其指向的是你期望的 Ruby 版本对应的解释器而不是系统自带路径。更新 RubyGems 自身RubyGems 自身也是一个 gem会持续发布新版本。把 RubyGems 更新到最新版本可以避免旧版本带来的安装 bug 和安全隐患gem update --system--system参数表示更新的是 RubyGems 系统组件本身即gem命令的实现而不是某个第三方 gem。执行后gem --version可查看当前 RubyGems 的版本号确认升级是否生效。需要注意的是升级 RubyGems 自身通常需要对你正在使用的 Ruby 环境拥有写入权限——使用 rbenv 等用户级 Ruby 时一般没有问题而系统 Ruby 的更新可能需要额外处理权限。安装 gem标准安装与跳过文档加速安装一个 gemRuby 软件包使用gem installgem install gemname其中gemname是 rubygems.org 上的包名例如gem install rails、gem install bundler等。默认情况下RubyGems 会为每个 gem 生成 RDOC/RI 文档这会拖慢安装速度且占用磁盘空间。如果不打算在本地离线阅读文档这也是大多数开发者使用搜索引擎查找文档的习惯可以用--no-document跳过文档生成让安装更快gem install gemname --no-document除命令行参数外更一劳永逸的做法是在~/.gemrc配置文件中持久化这一行为。本仓库 docs/ruby/index.md 给出的配置方式是echo gem: --no-document ~/.gemrc~/.gemrc是 RubyGems 的用户级配置文件其中的gem:小节下的参数会被视为gem命令的默认选项。写入后今后所有gem install都会默认跳过文档生成无需再手动加--no-document。在项目内使用 gemset 隔离 gem同样是 docs/ruby/index.md 的进阶做法Ruby 项目需要沙箱化的 gem 集合以便不同项目使用互不干扰的 gem 版本并支持按应用指定使用哪套 gem。使用 rbenv-gemset 时可以让 gem 安装到项目目录下的子文件夹方便日后移除、修改与测试echo .gems my_project_path/.rbenv-gemsets执行后该项目的 gem 会被安装到project/.gems目录中与全局 gem 环境隔离。通过 Bundler 管理项目依赖Bundler 为 Ruby 项目提供一致的依赖环境会追踪并安装项目所需的确切 gem 及其版本。安装 Bundler 并让它随 rbenv 自动就绪gem install bundler echo bundler $(brew --prefix rbenv)/default-gems第二条命令把bundler写入 rbenv 的default-gems列表这样每次通过 rbenv 安装新的 Ruby 版本时Bundler 都会被自动安装省去重复操作。此后在项目中使用bundle install即可按Gemfile精确安装依赖。查看已安装的 gem 与过期检测查看本机当前安装了哪些 gemgem listgem list会列出所有已安装 gem 的名称和版本如rails (7.0.4, 6.1.7)。如需更详细的信息可配合gem list --local仅本地包或gem info gemname使用。检查是否有 gem 存在可用新版本gem outdated该命令会列出所有“已安装版本落后于 rubygems.org 最新版本”的 gem 及其新旧版本对照是决定何时执行批量升级的重要依据。注意gem outdated只报告差异不会自动执行升级。更新已安装的 gem更新所有 gem或只更新某一个指定的 gemgem update [gemname]不带参数执行gem update会尝试把所有 gem 升级到各自允许的最新版本带包名执行gem update gemname则只升级该 gem。如果担心升级导致依赖冲突可以先执行gem outdated查看待升级清单再按需逐个更新。升级之后通常会产生多个历史版本残留见下文清理章节。清理旧版本gem cleanupRubyGems 在安装新版本时默认保留旧版本方便回滚。但这会让本地磁盘积累大量无用版本。更新完 gem 之后建议做一次清理gem cleanupgem cleanup会移除那些不再被任何已安装 gem 依赖的旧版本保留当前使用版本及其依赖链所需版本。对于长期维护的 Ruby 开发机定期执行gem update后跟着gem cleanup可以有效控制磁盘占用避免版本目录膨胀。若只想清理某个特定的 gem 的旧版本可指定包名gem cleanup gemname。完整的 gem 日常维护命令速查下表汇总了本文涉及的全部 RubyGems 命令便于日常查阅操作命令说明验证安装which gem确认gem命令在 PATH 中更新 RubyGems 自身gem update --system升级 gem 命令实现本身安装 gemgem install gemname安装指定包安装并跳过文档gem install gemname --no-document安装更快不生成 RDOC/RI持久化跳过文档echo gem: --no-document ~/.gemrc写入用户级默认配置列出已安装 gemgem list显示全部本地 gem 及版本检查过期 gemgem outdated列出可升级的 gem 与新旧版本更新 gemgem update [gemname]更新全部或指定 gem清理旧版本gem cleanup删除无依赖的旧版本 gem与 Ruby 版本管理工具的协同RubyGems 命令本身与 Ruby 解释器绑定使用 docs/ruby/index.md 中介绍的 rbenv 方案时gem命令实际由 rbenv shims 代理指向当前 rbenv 全局/项目版本对应的 gem 环境。这意味着rbenv install 3.1.1安装新 Ruby 版本后rbenv global 3.1.1切换默认版本时gem环境会自动切换在 Apple SiliconM1 等Mac 上安装较老的 Ruby如2.7.3、2.6.7时需要先执行export optflags-Wno-errorimplicit-function-declaration再编译安装~/.gemrc、rbenv的default-gems与项目级.rbenv-gemsets共同构成多层的 gem 配置体系让不同项目、不同 Ruby 版本之间的依赖环境彼此隔离。因此本指南中的每个gem命令在实际执行时都作用于当前激活的 Ruby 环境这也是为什么推荐先通过 rbenv 搭建好 Ruby再使用 RubyGems 管理包。常见注意事项权限问题若使用系统自带 Rubygem install或gem update --system可能因写入系统目录而需要sudo使用 rbenv 安装的用户级 Ruby 则通常无需提权这也是本仓库推荐 rbenv 的重要原因之一。文档参数--no-document是短选项--no-ri --no-rdoc的等价写法不同版本写法略有差异本文与~/.gemrc中采用的是兼容性较好的gem: --no-document形式。清理时机gem cleanup会保留被依赖的版本但如果在清理后发现某个项目需要旧版本通过gem install gemname -v version可以随时重新安装指定版本。验证升级执行gem update --system后建议运行gem --version确认版本号已变化避免误以为升级失败。参考资料本文主体内容源自仓库文档 docs/ruby/rubygems.mdRuby 版本管理与 rbenv/Bundler/gemset/.gemrc的完整配置见 docs/ruby/index.md该文档在项目侧边栏中的位置可参见 sidebars.tsRuby 分类下含ruby/index与ruby/rubygems两个条目全文 Markdown 文件通过 Makefile 与package.json中的lint脚本执行 markdownlint 校验仓库使用 Homebrew 作为 macOS 包管理基础rbenv等工具均通过brew install安装。赞分享文档教程开发工具【免费下载链接】mac-setupInstalling Development environment on macOS项目地址https://gitcode.com/gh_mirrors/ma/mac-setup点击查看免费下载相关推荐CopyTranslator Windows 版下载与安装指南Setup 安装包、zip 便携版与 winget/scoop 包管理器CopyTranslator Windows 版下载与安装指南Setup 安装包、zip 便携版与 winget/scoop 包管理器 CopyTransla桌面应用人工智能3 步把打包的 Unity 资源提出来AssetRipper 资源提取实战3 步把打包的 Unity 资源提出来AssetRipper 资源提取实战 AssetRipper 能把打包游戏里的 Unity 资源提取出来。你手里有一份安开发工具逆向工程游戏开发gh_mirrors/nvim/nvim性能优化秘籍解决Neovim启动慢、卡顿问题gh_mirrors/nvim/nvim性能优化秘籍解决Neovim启动慢、卡顿问题 gh_mirrors/nvim/nvim是一个专为前端开发优化的Neov上一篇如何在Windows上构建企业级Linux GUI应用运行环境VcXsrv深度解析下一篇微信聊天记录永久保存WeChatMsg开源工具完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考