我可以安裝berkshelf就好:伯克斯拒絕更新
$ gem install berkshelf
Successfully installed berkshelf-3.2.0
Parsing documentation for berkshelf-3.2.0
Done installing documentation for berkshelf after 1 seconds
1 gem installed
但它沒有真正影響我的伯克斯:
$ berks version
Berkshelf (2.0.18)
出現正常:
$ which berks
/home/rubyUser/.rvm/gems/ruby-2.1.4/bin/berks
我m在Debian穩定版上使用ruby 2.1.4(wheezy):
$ rvm list
rvm rubies
ruby-1.9.3-p550 [ x86_64 ]
=* ruby-2.1.4 [ x86_64 ]
我覺得我的路是正確的:
$ echo $PATH
/home/rubyUser/.rvm/gems/ruby-2.1.4/bin:/home/rubyUser/.rvm/gems/[email protected]/bin:/home/rubyUser/.rvm/rubies/ruby-2.1.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/rubyUser/.rvm/bin:/home/rubyUser/.rvm/bin
這有可能是chefdk以某種方式干擾:
$ whereis berks
berks: /usr/bin/berks /usr/bin/X11/berks /opt/chefdk/bin/berk
,但給人的完整路徑調用伯克斯不影響版本。看着由which
提供的那個berks,它揭示了它僅僅是從其他地方呼喚這個寶石,我如何尋找它來自哪裏?
$ cat `which berks`
#!/usr/bin/env ruby_executable_hooks
#
# This file was generated by RubyGems.
#
# The application 'berkshelf' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
version = $1
ARGV.shift
end
end
gem 'berkshelf', version
load Gem.bin_path('berkshelf', 'berks', version)
從我看到的時候,它不拒絕更新清除這些類的東西。它更新得很好,但使用舊版本。您可以嘗試卸載舊版本。 – SlySherZ 2014-11-08 15:10:44
卸載導致這個'$ berks版本 在任何來源找不到合適版本的berkshelf(2.0.18) 運行'bundle install'安裝缺少的gems.'這導致我在下面的答案 – thoth 2014-11-08 16:20:29