Bundler无法解析手动安装和删除的宝石的正确(相关)版本

时间:2018-04-16 00:28:24

标签: rubygems jekyll bundler

我绝对没有写过任何Ruby程序。我只是使用Jekyll设置我的静态博客。

我通过bundle install从Gemfile安装了所有内容。我的Gemfile看起来像这样:

source "https://rubygems.org"
gem "github-pages"

group :jekyll-plugins do
    gem "octopress-minify-html"
end

octopress插件的一个依赖项是uglifier 2.7.2,它在第一个bundle install调用中正确安装。

在尝试以后依赖于另一个版本的uglifier的另一个插件时,我通过

安装了uglifier
gem install uglifier

在此之前,我使用gem安装的唯一软件包是Bundler,其他所有软件包都是通过bundle install完成的。上面的命令安装了uglifier 4.1.9,后来在使用Jekyll构建时出现了一些问题。

但似乎我无法将uglifier恢复到2.7.2。从那以后,Bundler一直在解决octopress插件对uglifier 4.1.9(不兼容)的依赖性。我尝试了sudo bundle clean --forcesudo gem uninstall --all,删除~/.bundle~/.gem并重新开始,但仍然将Bundler安装uglifier 4.1.9作为依赖性。

我在新VM上尝试了整个过程并从apt install ruby ruby-dev开始,这次Bundler正确地将依赖关系解析为2.7.2并且我能够构建我的站点。它也在Travis CI上正确地解决了问题。

问题:如何让Bundler忘记uglifier 4.1.9并停止我机器上的错误依赖解析?

注意:通过删除整个WD并从GitHub重新克隆来保持工作目录的清洁,因此它在不同环境中保持一致。

1 个答案:

答案 0 :(得分:0)

尝试以下一个

  1. jekyll

    的上下文中运行Gemfile个命令
    bundle exec jekyll build
    
  2. 重新对齐您的锁定文件,然后重新对齐 build

    我。运行bundle update

    II。运行bundle exec jekyll build

  3. 重新生成您的锁文件,然后 build

    我。删除Gemfile.lock

    II。运行bundle exec jekyll build