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 的冲突。

相关推荐
Y38153266221 小时前
Ruby 调用谷歌搜索 API:net/http 与 json 标准库实战
搜索引擎·ruby
黑化旺仔2 天前
【OC】KVO
macos·ios·objective-c·cocoa
Liekkas Kono2 天前
macOS 27 安装 VMware Fusion 和 Win11 经验
macos·win11·vmware
shark-chili4 天前
关于AI辅助编程的认知
数据库·人工智能·redis·macos·缓存
程序员黎剑4 天前
RabbitMQ-消息可靠性-publisher-confirm持久化与手动ack
分布式·rabbitmq·ruby
我也要在julius_bar里藏钱4 天前
【山竹记账后端】1.搭建后端项目
后端·ruby·rails
zwd20054 天前
Mac 上写英文遇到不会的词,有哪些工具?输入法、翻译软件、写作助手怎么选
人工智能·macos·效率工具·英语写作·输入法·deepl·翻译工具
33三 三like4 天前
Jx-Mac 本地部署过程总结
macos
大象AI共学5 天前
想在手机上读 Obsidian?Mac → iPhone / 安卓的零成本方案
macos·智能手机·iphone
sysinside6 天前
如何创建可引导的 macOS Golden Gate 27 安装介质
macos