我使用了sudo bundle install
,这可能是问题的原因?
现在我有:
gem -v
2.6.14 ruby -v
ruby 2.3.5p376(2017-09-14修订版59905)[x86_64-darwin15] jekyll -v
jekyll 3.6.2 bundle -v
Bundler版本1.16.0.pre.3 尝试运行bundle exec jekyll serve
或jekyll serve
/Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:271:in
find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException) from /Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:299:in
activate_bin_path' 来自/Users/myusername/.rvm/gems/ruby-2.3.5/bin/bundle:23:in<main>' from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in
eval' 来自/Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in`
此外,当访问我的博客文件夹cd my_path
时,我收到以下消息:
VM使用你的Gemfile来选择Ruby,一切都很好 - Heroku也这样做, 您可以使用'rvm rvmrc warning ignore / Library / WebServer / Documents / blog / Gemfile'忽略这些警告。 要忽略所有文件的警告,请运行'rvm rvmrc warning ignore allGemfiles'。 未知的ruby解释器版本(不知道如何处理):RUBY_VERSION。
我不知道如何解决这个问题。我只想创建我的静态博客,说实话,我不知道Ruby,Gem或Bundle :)所以我会很感激一些见解!
答案 0 :(得分:300)
我的问题是Gemfile.lock
文件的BUNDLED_WITH
版本为1.16.1
,而gem install bundler
的安装版本为2.0.1
,因此存在一个版本右移文件夹时不匹配
gem install bundler -v 1.16.1
修复了
当然,您也可以按照Sam3000的建议,使用最新的Gemfile.lock
版本来更改BUNDLED_WITH
的{{1}}并使用最新的软件
答案 1 :(得分:102)
gem update --system
将更新rubygems并解决问题。
答案 2 :(得分:38)
我写这篇文章是因为有人遇到像我这样的问题。
gem install bundler
表明每个人都安装得很好。
Fetching: bundler-1.16.0.gem (100%)
Successfully installed bundler-1.16.0
Parsing documentation for bundler-1.16.0
Installing ri documentation for bundler-1.16.0
Done installing documentation for bundler after 7 seconds
1 gem installed
当我输入bundle
时出现错误:
/Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in `load': cannot load such file -- /Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/exe/bundle (LoadError)
from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in `<main>'
from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>'
在文件夹/Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/
中,没有bundler-1.16.0
文件夹。
我使用sudo gem install bundler
根据@noraj的answer和@Niels Kristian的评论,以下命令应该可以胜任。
gem update --system
bundle install
答案 3 :(得分:30)
如果由于捆绑器需要RubyGems v3.0.0而尝试安装捆绑器2.0.1或2.0.0,那么真正的答案就在这里
昨天我发布了Bundler 2.0,其中引入了许多重大更改。这些更改之一是将Bundler设置为需要RubyGems v3.0.0。发布之后,很明显,我们的许多用户都遇到了Bundler 2的问题,这些问题需要一个真正新版本的RubyGems。
我们一直在认真听取用户的反馈,并决定将RubyGems的要求至少降至v2.5.0。我们发布了新的Bundler版本v2.0.1,该版本可以调整此要求。
有关更多信息,请参见:https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
答案 4 :(得分:22)
此问题已解决:
rm Gemfile.lock
bundle install
答案 5 :(得分:16)
原因是您当前的红宝石环境,您使用的捆绑器版本与Gemfile.lock
中的版本不同。
Gemfile.lock
中安装具有相同版本的捆绑器,如果发生了某些不可恢复的事情,这不会破坏任何东西。Gemfile.lock
,然后运行bundle install
。答案 6 :(得分:11)
如果您更改了rvm use
使用的红宝石版本,请删除Gemfile.lock,然后重试。
答案 7 :(得分:7)
要安装与您的Gemfile.lock
匹配的捆绑器,请使用:
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
答案 8 :(得分:4)
打开Gemfile.lock,该文件位于应用程序文件夹的根目录中。滚动到文件末尾,查看使用的捆绑程序版本。然后,确保安装使用的捆绑软件版本:
gem install bundler -v x.xx.xx
或者-如果安装了更高版本的捆绑程序,则删除Gemfile.lock和捆绑软件。
选择是您的选择,我的朋友。
答案 9 :(得分:1)
就我而言,上述建议对我不起作用。我的情况几乎没有什么不同。
当我尝试使用bundler
安装gem install bundler
时..但是我得到
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
然后我尝试使用sudo gem install bundler
,然后得到
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
然后我尝试使用sudo gem install bundler -n /usr/local/bin
(在我的情况下仅/usr/bin
可以完成工作)。
然后成功安装bundler
编辑:我使用MacOS,也许/usr/bin
不适用于我(https://stackoverflow.com/a/34989655/3786657评论)
答案 10 :(得分:0)
我的问题是我正在使用RVM并激活了错误的Ruby版本...
希望这可以帮助至少一个人
答案 11 :(得分:0)
除了许多答案之外,我的问题还来自于想要使用docker的ruby作为基础,然后又在顶部使用rbenv的问题。这搞砸了很多事情。
在这种情况下,我通过以下方式修复了该问题:
unset GEM_HOME
unset BUNDLE_PATH
在那之后,rbenv运行良好。不知道这些环境变量最初是如何加载的...
答案 12 :(得分:-1)
我今天遇到了同样的问题。我通过移除fmt.Println("\033[2J")
PATH
中的.bashrc
来解决此问题。
答案 13 :(得分:-2)
我不得不做rake clean --force
。然后gem install rake
等。
答案 14 :(得分:-2)
我将红宝石从2.5.x降级到2.4.x。