我有一个网站使用Jekyll 与 Github 页面 https://help.github.com/articles/using-jekyll-with-pages/。之前在另一台计算机上搞乱了版本和 RVM 后,在这台计算机上,我选择坚持使用一个版本的 Ruby 和使用捆绑器的每个项目环境。
我有一个非常简单的Gemfile
:
[$]> cat Gemfile
source 'https://rubygems.org'
gem 'github-pages'
和捆绑器配置:
[$]> cat .bundle/config
---
BUNDLE_PATH: env
BUNDLE_DISABLE_SHARED_GEMS: '1'
当我通过运行任何命令(jekyll、gem、irb)时bundle exec
,我收到依赖错误:
[$]> bundle exec jekyll
Could not find RedCloth-4.2.9 in any of the sources
Run `bundle install` to install missing gems.
但是,该捆绑包已安装:
[$]> bundle install
Using RedCloth 4.2.9
Using i18n 0.6.11
Using json 1.8.1
[snip]
Using github-pages 29
Using bundler 1.7.7
Your bundle is complete!
It was installed into ./env
我对捆绑程序如何认为在使用一个子命令时安装了 gem 感到有点困惑,但在使用另一个子命令时认为它们丢失了。
[$]> which ruby
/usr/local/bin/ruby
[$]> which bundler
/usr/local/bin/bundler
[$]> ruby --version
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
[$]> bundler --version
Bundler version 1.7.7
删除后env
目录并重新安装,我注意到它为两个 Ruby 版本创建了子目录 - 2.1.0 和 2.2.0。后者是我当前版本的 Ruby,但目录是空的(所有 gems 都安装到了env/ruby/2.1.0/gems
目录)。这与奥利弗关于 rbenv 的回答相结合,让我思考不匹配的版本。
我用一个简单的方法重新安装了捆绑器gem install bundler
, reran bundle install
,一切都很好。
一般来说,答案似乎是解决为与您实际使用的不同版本的 Ruby 安装的捆绑程序的问题。我觉得很奇怪它会用一件事bundle install
另一个用于bundle exec
,但*耸耸肩*无论如何。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)