website

Livid

所属分类:技术博客与个人站

记录静态博客、macOS、Docker、网络体验与设计创作的个人站

Livid 的个人站将文章归档与设计作品集放在同一入口,日志记录了 Jekyll、macOS、Docker、IPv6、软件和游戏体验。2023 年发布的《Installing Jekyll on macOS Ventura》记录了作者在 Ventura 环境中安装 Jekyll 时遇到的 Ruby 版本问题,以及通过 rbenv 管理 Ruby、使用 Bundler 安装站点依赖的过程。本文梳理这份实践记录所体现的环境隔离思路,并保留其历史版本边界。

Livid:在 macOS 上为 Jekyll 项目管理 Ruby 与 Gem 依赖(livid-jekyll-macos-ventura)

发布于 2026年10月21日更新于 2026年10月27日

为什么静态博客需要关注 Ruby 环境

Jekyll 由 Ruby 生态中的 Gem 组成。博客站点不仅依赖 Jekyll 本身,也可能在 Gemfile 中声明主题、插件和其他构建工具。系统预装的 Ruby 版本、项目要求的版本和不同 Gem 的兼容范围若不一致,安装过程就可能失败,或者在升级后出现难以复现的构建问题。

Livid 的文章以 macOS Ventura 当时提供的 Ruby 2.6 为背景,记录部分 Gem 对版本提出要求后遇到的安装困难。作者因此使用 rbenv 安装较新的 Ruby,而不是直接覆盖系统自带运行环境。这个做法把系统 Ruby 与项目 Ruby 分开,减少对系统组件的影响,也让项目能够明确选择自己的运行版本。

Livid 主页展示技术文章、归档与 Design/Portfolio 入口

用 rbenv 为项目选择 Ruby

文章记录的第一步是通过 Homebrew 安装 rbenv 和 ruby-build。rbenv 用于在同一台机器上安装并切换多个 Ruby 版本,ruby-build 则提供相应的版本构建能力。安装后需要按 shell 类型完成初始化,让终端能够识别 rbenv 提供的命令。

接下来,作者在 Jekyll 站点目录中安装 Ruby 3.1.3,并将该目录配置为使用这个版本。这样切换到其他项目时,可以保留各自所需的 Ruby 版本,而不必让所有项目共享同一套环境。排查时可先查看 ruby -v,确认当前终端实际使用的版本,再进行后续 Gem 安装。

环境管理的重点是“确认项目使用的版本”,而不是盲目追求最新版本。Ruby 版本需要与站点的 Gem 依赖相容;团队协作时还应把版本要求记录在项目中,避免不同机器使用不一致的解释器。rbenv 只帮助管理版本,不能自动解决 Gem 之间的兼容冲突。

Bundler 与站点依赖

文章接着安装 Bundler 和 Jekyll,再通过 Bundler 根据 Gemfile 安装站点其余依赖。Gemfile 用于描述项目需要的 Gem,锁文件保存具体解析结果,使开发环境和持续集成能够使用相同依赖组合。维护静态站点时,直接依赖和主题插件都应放在项目定义中,减少依靠机器全局状态造成的差异。

Livid 的安装记录还将 Bundler 的依赖安装路径设在站点目录下的 vendor/bundle。把 Gem 放在项目内有助于按项目隔离依赖,也便于理解某个站点需要哪些组件。代价是该目录会占用仓库工作区空间,通常不应作为源码提交内容。

Jekyll 安装文章详情展示 rbenv、Bundler 与 Gem 依赖设置

排除本地依赖目录

当依赖被安装在 vendor/bundle 时,项目需要配置忽略规则,避免把本地 Gem 文件混入版本库。文章建议在 Jekyll 配置中排除 vendor,并在 .gitignore 中忽略 vendor/ 与 .bundle/。这样源码仓库保留站点定义与依赖清单,构建工具则在本地或部署环境重新安装具体文件。

忽略规则应与部署方式匹配。如果发布流程依赖 CI 下载 Gem,就要确保锁文件、Ruby 版本和安装步骤都被正确记录;如果构建服务使用缓存,也要明确缓存目录如何失效和更新。忽略本地文件并不等同于忽略依赖声明,Gemfile 和锁文件仍是复现环境的重要输入。

安装问题的排查顺序

遇到 Gem 安装失败时,可以依次确认 Ruby 版本、当前目录是否选中了预期版本、Bundler 是否读取正确的 Gemfile,以及失败 Gem 的版本约束。先检查环境状态,再决定是否调整依赖,比直接删除锁文件或全局安装更新版本更容易定位原因。

文章提到遇到 Gem 问题时可以尝试删除 Gemfile.lock 并重新安装。不过在协作项目中,锁文件记录了依赖解析结果,随意删除可能导致一批依赖被升级或降级,因此应先检查失败原因,必要时在分支中重新生成锁文件并对比变化。只有确认锁文件本身与目标 Ruby 环境不兼容时,才考虑更新,并通过站点构建验证结果。

保留文章的时间背景

这篇安装记录发表于 2023 年,针对 macOS Ventura 和 Ruby 3.1.3 的当时环境。Ruby、Jekyll、Bundler 及 Gem 的版本都会变化,因此这些具体命令和兼容结论不应直接当作当前最新安装指南。它的长期参考价值主要在于环境管理的思路:使用版本管理器隔离 Ruby,为项目明确依赖,并将本地安装目录排除出仓库。

准备在当前环境搭建 Jekyll 时,应先查看 Jekyll 官方文档、目标 macOS 版本和项目锁文件,确认适合的 Ruby 版本后再执行安装。若维护旧站点,也可以先在隔离的 Ruby 环境复现原来的版本组合,再计划升级主题、插件和构建依赖,避免一次性变更过多因素。

Livid 站点的其他内容

Livid 的文章归档还包含 Jekyll、Docker、IPv6、macOS、游戏与软件主题,设计作品则通过独立入口展示。读者可以从一篇安装记录继续查找站点生成、开发环境或其他数字工具相关内容。RSS 和 JSON Feed 为持续关注新增文章提供了订阅方式。

整体来说,这篇文章呈现了一个维护静态博客时常见的环境问题:系统 Ruby 与项目依赖要求不一致。通过 rbenv 选择 Ruby、用 Bundler 管理 Gem、隔离本地依赖目录并保留锁文件,可以让构建环境更清晰。复用其思路时,应把具体版本替换为当前项目文档确认的组合。