【问题标题】:Jekyll Dependency Error when Upgrading from 2.x to 3.x从 2.x 升级到 3.x 时出现 Jekyll 依赖错误
【发布时间】:2016-05-12 02:08:28
【问题描述】:

the official update guide 之后,我最近从 Jekyll 2.x 升级到了 Jekyll 3.1.1。

安装后,运行jekyll serve产生如下错误:

依赖错误:哎呀!您似乎没有安装 jekyll-markdown-block 或其依赖项之一。为了使用当前配置的 Jekyll,你需要安装这个 gem。来自 Ruby 的完整错误消息是:“无法激活 jekyll-markdown-block-1.1.0,因为 jekyll-3.1.1jekyll (~> 2.0) 冲突”如果遇到问题,可以在 http://jekyllrb.com/help/ 找到有用的资源!

所以我从那里sudo gem update jekyll-markdown-block,但错误仍然存​​在。然后我尝试更新我所有的宝石:

sudo gem update `gem list | cut -d ' ' -f 1`

然后出于绝望,我卸载了 所有我的 gem(除了核心的,我不允许卸载):

sudo gem uninstall `gem list | cut -d ' ' -f 1`

然后我像往常一样继续安装 jekyll(假设我现在从头开始工作):

sudo gem install jekyll
Fetching: liquid-3.0.6.gem (100%)
Successfully installed liquid-3.0.6
Fetching: kramdown-1.9.0.gem (100%)
Successfully installed kramdown-1.9.0
....
Parsing documentation for jekyll-watch-1.3.1
Installing ri documentation for jekyll-watch-1.3.1
Parsing documentation for jekyll-3.1.1
Installing ri documentation for jekyll-3.1.1
14 gems installed

然后安装jekyll-pressjekyll-markdown-block(一条新的错误消息抱怨我没有它们),然后我收到了抱怨 Jekyll 2.x 的原始错误消息。

如何完全删除 Jekyll 2.x 并完成升级而不会出现 gem 依赖错误?

【问题讨论】:

  • 您是否尝试将jekyll-markdown-block 添加到您的jekyll 站点的Gemfile 中?
  • 尝试使用bundler 构建网站。如果您没有安装它,请从命令行运行 gem install bundler。然后,添加一个包含您需要的所有 gem 的 Gemfile。然后,执行bundle install,当捆绑程序将安装所有必需的gem 及其依赖项时。最后,运行bundle exec jekyll serve 在本地服务。您可以将标志 --watch--baseurl "" --safe 添加到 bundle exec 命令。
  • 更新:我最终通过转到一个新目录并运行 jekyll init 来实现这一点。为这个新创建的站点提供服务,我只是移植了旧站点。我很确定存在导致旧网站崩溃的配置更改。

标签: rubygems jekyll jekyll-extensions


【解决方案1】:

确保您已经安装了捆绑器,

sudo gem install bundler

【讨论】:

    【解决方案2】:

    似乎捆绑环境很混乱。如果您有权限问题,请尝试 bundle clean --force - 使用 sudo。

    【讨论】:

    • 我安装了 3 个版本的 kramdown。这对我有用。
    【解决方案3】:

    从 2.x 更新到 jekylls 3.1.2 后,我遇到了同样的问题。 运行jekyll serve,收到如下消息:

    依赖错误:哎呀!看起来您没有安装 kramdown 或其依赖项之一。为了像现在一样使用 Jekyll 已配置,您需要安装此 gem。完整的错误信息 来自 Ruby 的是:'无法加载这样的文件 -- kramdown' 如果你遇到 麻烦,你可以在http://jekyllrb.com/help/找到有用的资源!

    我按照 Virtua Creative 对他的评论的建议做了:

    bundle install
    

    然后:

    bundle exec jekyll serve
    

    最初的命令给了我同样的错误,但是 bundle exec 可以工作。

    【讨论】:

    • 嗯,我正在处理您的同样的kramdown 问题,您的解决方案有效,但为什么呢?
    • 我也有同样的经历。我的猜测是bundle exec jekyll serve 使用bundle install 在本地安装的依赖项,而jekyll serve 使用全局安装的gem。我敢打赌,如果我们尝试gem install kramdown 之类的,它会解决它。
    • 我也遇到了这个问题。该问题似乎是由捆绑程序引起的。跑jekyll serve --trace 并发现异常是在捆绑器中抛出的。当我卸载 bundler 时,我能够使用 jekyll 3.1.2 构建网站。
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    相关资源
    最近更新 更多