Jekyll + Ruby + Nokogiri 安装指南 (macOS M 系列)

Jekyll + Ruby + Nokogiri 安装指南 (macOS M 系列)

本文档指导在 macOS (M1/M2/M3/M4) 上通过 rbenv 安装 Ruby,并在 Ruby 环境中顺利安装 Jekyll 与 Nokogiri。


1. 环境准备

1.1 安装 Homebrew

如果尚未安装 Homebrew:

bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

1.2 安装必要依赖

复制代码
brew install rbenv ruby-build openssl@3 libyaml libffi
brew install node  # 可选:用于 Jekyll 扩展功能
brew install git

2. 配置 rbenv

2.1 初始化 rbenv

~/.zshrc~/.bash_profile 中添加:

复制代码
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

然后重新加载 shell:

复制代码
source ~/.zshrc

2.2 验证 rbenv

复制代码
rbenv -v
ruby-build -v

3. 安装 Ruby

Apple Silicon 推荐安装最新的 Ruby 3.x。

复制代码
# 安装 Ruby 3.3.2
RUBY_CFLAGS="-O2 -march=arm64" rbenv install 3.3.2

# 设置全局 Ruby
rbenv global 3.3.2

# 验证 Ruby
ruby -v

⚠️ 如果下载/编译慢,可以使用镜像:

复制代码
RUBY_BUILD_MIRROR_URL=https://cache.ruby-lang.org/ ruby-build 3.3.2 ~/.rbenv/versions/3.3.2

4. 安装 Bundler

复制代码
gem install bundler
rbenv rehash

5. 安装 Jekyll 与依赖

5.1 安装 Jekyll

复制代码
gem install jekyll
rbenv rehash
jekyll -v

5.2 安装 Nokogiri (解决 M 系列架构问题)

复制代码
gem install nokogiri -- --use-system-libraries \
  --with-xml2-config=$(brew --prefix libxml2)/bin/xml2-config \
  --with-xslt-config=$(brew --prefix libxslt)/bin/xslt-config
rbenv rehash

6. 创建和启动 Jekyll 项目

复制代码
jekyll new my_blog
cd my_blog
bundle install
bundle exec jekyll serve --livereload

访问 http://localhost:4000 查看效果。


7. 常见问题与解决方案

问题 解决方案
LoadError: nokogiri/nokogiri 删除旧 gem: sudo gem uninstall nokogiri,然后用上文方式安装。
编译慢 / 卡住 RUBY_CFLAGS="-O2 -march=arm64" 并确保 Homebrew 的 openssl@3 已安装。
权限问题 (Gem::FilePermissionError) 不要用系统 Ruby,必须用 rbenv 安装的 Ruby。

8. 验证环境

复制代码
ruby -v          # 3.3.2
gem list         # bundler, nokogiri, jekyll
jekyll -v        # Jekyll 版本

9. 附加

如果是 M4 架构(属于 Apple Silicon 系列)

在 Apple Silicon(M1/M2/M4)上,系统自带 Ruby 往往是 x86_64 架构,而 nokogiri 需要编译 C 扩展,导致架构不匹配。直接用 sudo gem install 是行不通的。

最稳妥方案:安装一个原生 arm64 Ruby,再在它上面安装 Jekyll 与 Nokogiri。

步骤如下(用 rbenv 举例):

复制代码
# 1. 安装 rbenv 和 ruby-build
brew install rbenv ruby-build

# 2. 初始化 rbenv(加到 shell 配置里)
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc

# 3. 安装最新稳定版 Ruby(arm64 原生)
rbenv install 3.3.2
rbenv global 3.3.2

# 4. 更新 gem
gem update --system

# 5. 安装 Nokogiri(使用系统库加 Homebrew 提供的 libxml2)
brew install libxml2 libxslt
gem install nokogiri -- --use-system-libraries \
    --with-xml2-include=$(brew --prefix libxml2)/include/libxml2 \
    --with-xml2-lib=$(brew --prefix libxml2)/lib \
    --with-xslt-include=$(brew --prefix libxslt)/include \
    --with-xslt-lib=$(brew --prefix libxslt)/lib

# 6. 安装 Jekyll
gem install jekyll bundler

这样就能在 M4 Mac 上顺利运行 jekyll serve,不会再遇到 x86_64 与 arm64 的冲突。

相关推荐
coding4u8 小时前
Mac 外接显示器完全指南:从插上线到调好每个参数
macos·计算机外设·文件管理·显示器·策略模式·quick look扩展
zhyf1198 小时前
(Mac)Homebrew部署Obsidian+Claudian+Excalidraw
macos
chuan.bai8 小时前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
Chennn__9 小时前
开源项目:Recorder — 本地离线 macOS 录音转文字(通用/课堂/雅思,可选 Ollama)
macos
AUV11079 小时前
录系统声音用什么 Mac 录屏软件:双音源到成片的五层验收
macos
chuan.bai10 小时前
Java RAG 实战专栏导读:从零跑通 Ollama + Qdrant + Spring Boot 知识库
java·人工智能·macos·ai
向阳是我11 小时前
两台 Mac 远程共享屏幕最佳方案:Tailscale + macOS 原生屏幕共享
macos
楷哥爱开发12 小时前
如何在 Windows、macOS 和 Linux 上安装 scikit-learn (sklearn)
linux·windows·macos
霸道流氓气质1 天前
RabbitMQ 延迟队列与死信队列:原理、实现与实战
分布式·rabbitmq·ruby
Architect_Lee1 天前
mac快速安装mysql
数据库·mysql·macos