在我的 M3 Macbook 上安装 Jekyll 无法“坚持”

问题描述 投票:0回答:1

我想我已经把自己逼到了一个角落,试图覆盖默认的 Ruby 安装,以便我可以安装 Jekyll。

这是一个粗略的时间表:

  1. 我严格按照本教程进行操作,它有效,我的网站已启动
  2. 我安装这个主题,重建我的网站,并使用 Netlify 成功部署
  3. 我开始更改网站的布局、菜单、链接等配置。与 Jekyll 或 Ruby 配置没有直接关系。
  4. 我尝试
    jekyll build
    并得到
    jekyll not found
  5. 我尝试使用
    gem install jekyll
    重新安装 Jekyll 并得到
    Successfully installed jekyll-4.3.3 

    1 gem installed
  6. 我尝试
    which jekyll
    检查安装并得到
    jekyll not found
  7. 我向 Gemini 寻求帮助,它告诉我按顺序尝试这些命令以进行全新安装
    gem uninstall jekyll
    sudo gem clean system
    gem install jekyll --no-document
  8. 我退出并重新打开我的终端,再次尝试
    which jekyll
    并再次得到
    jekyll not found
  9. 因为
    gem list
    中有 Jekyll 项目,Gemini 建议我可能存在环境变量问题,并告诉我通过在 .zshrc 文件中添加像
    export PATH="$PATH:/path/to/jekyll/bin"
    这样的行来修复它。我尝试通过查找带有
    gem path
    的路径来做到这一点,但没有 Jekyll gem 路径。
  10. Gemini 建议我尝试使用 rbenv 安装 Jekyll,所以我这样做并收到以下消息
    Setting up your shell with `rbenv init zsh' ...

    writing ~/.zprofile: now configured for rbenv.

    但我的 .zprofile 文件中没有引用 rbenv

我使用的是一台相当新的笔记本电脑,所以我正在考虑重置为出厂设置,因为这看起来相当棘手,但我对 Ruby 和 Jekyll 是全新的,所以我在这里发帖看看是否有任何不那么激烈的解决方案。 Mac 上预装的 Ruby 似乎是一个巨大的痛苦!

ruby rubygems jekyll netlify jekyll-theme
1个回答
0
投票

别担心,你真的不需要重置任何东西!您说得对,内置 Ruby 很麻烦,Homebrew Ruby 也是如此。当我开始时,我遇到了最神秘的错误,它们让我困惑了好几天!

正如其他人在评论中提到的,像

rbenv
这样的版本管理器是个好主意!我个人现在真的很喜欢
mise
。它是一个多语言版本管理器,因此它基本上可以处理任何语言,包括 Ruby。 (
asdf
是另一个非常流行的多语言版本管理器,但我最近切换到
mise
,因为我更喜欢它的 CLI,而且感觉更快。)您可以使用 Homebrew 安装
mise
brew install mise

下一个元素是 zsh 的初始化文件,正如评论中所讨论的。这些可能会有点令人困惑,但是这里列出了何时读取和执行哪些文件。我将大部分配置保留在 .zshrc

 中,但请注意,它仅针对交互式 zsh 会话执行。

这些是我的

.zshrc

 文件中的两行相关内容:

eval "$(/opt/homebrew/bin/brew shellenv)" eval "$(mise activate zsh)"
由于 mise 是随 Homebrew 一起安装的,因此在调用 

mise activate zsh 之前添加 Homebrew 路径非常重要,否则将无法找到

mise
可执行文件。
将这些行添加到 

.zshrc

(或

.zprofile
或列表中的任何相关文件)后,请确保刷新 shell 会话以获取更改:您只需关闭终端窗口并打开新进程,或者您可以运行
exec zsh
(这会将当前
zsh
进程替换为新进程)。您可以通过运行
mise
来确保
$PATH
在您的
whence mise
中。
从那里,使用mise非常简单:

cd

到您的项目目录并运行

mise use ruby@latest
(或者,更好的是,
mise use [email protected]
或您想要的任何版本,这样您的版本就被固定了)。 mise 将安装 Ruby 并更新
$PATH
以使用指定版本。您可以通过运行
whence -a ruby
来检查这一点;你应该得到这样的东西:
$ whence -a ruby
/Users/you/.local/share/mise/installs/ruby/latest/bin/ruby
/usr/bin/ruby

现在你的mise安装的Ruby就在系统Ruby前面了,一切都准备好了!

希望这至少有一点帮助,抱歉这么长!

© www.soinside.com 2019 - 2024. All rights reserved.