Bundler找不到Rake。
如何修复我的Gem路径,以便我的Ruby宝石安装在Bundler可以找到的地方?
如果我这样做:
gem env
我明白了:
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2015-04-13 patchlevel 645) [universal.x86_64-darwin15]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-15
- GEM PATHS:
- /Library/Ruby/Gems/2.0.0
- /Users/lkrubner/.gem/ruby/2.0.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "install" => "--no-ri --no-rdoc"
- "update" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- https://rubygems.org/
Rake在那里:
ls -al /Library/Ruby/Gems/2.0.0/gems
rake-0.9.6
rake-10.4.2
rake-11.2.2
rdoc-4.0.0
test-unit-2.0.0.0
但这对当前项目来说都不重要。
我正在接管另一位开发人员的Rails项目。
Rails 4.2
Rake 11..2.2
Ruby 2.0.0
如果我查看
.bundler/config
我明白了:
BUNDLE_PATH: vendor/cache
BUNDLE_DISABLE_SHARED_GEMS: '1'
如果我使用"发现"我可以看到我已经安装了几个版本的Rake:
vendor/cache/rake-11.2.2.gem
vendor/cache/ruby/2.1.0/gems/rake-10.5.0/
vendor/cache/ruby/2.1.0/gems/rake-11.2.2
vendor/cache/ruby/2.1.0/gems/rake-10.4.2
但其中大部分都是使用ruby 2.1文件夹,而不是2.0。
但如果我尝试:
bundle exec rake db:setup
我明白了:
Could not find rake-11.2.2 in any of the sources
我已尝试过捆绑安装"。
我尝试删除Gemfile.lock。
我试图避免使用"捆绑exec"。
我无法工作。
我只需要让系统使用一条路径。版本不是很重要。
如何在一条路径上达成一致意见?
如果我运行"捆绑安装"然后在输出中我看到"使用rake 11.2.2"。所以"捆绑"当Bundler正在进行"安装"任务,但不是在它执行" exec"任务。
顺便说一下:
which rake
/usr/local/bin/rake
这是对Ruby 2.0版本的硬编码:
#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rake' 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/
version = $1
ARGV.shift
end
end
gem 'rake', version
load Gem.bin_path('rake', 'rake', version)
[[更新]]
[[更新]]
我删除了:
的.bashrc
的.bash_profile
.zshrc
我跑了:
chsh -s /bin/bash
我在Mac上。这应该已经将我的shell从zsh更改为bash。
然后我在终端窗口中重新开始,以确保所有更改都已加载。
现在,如果我运行"捆绑安装"宝石似乎安装到vendor / cache /但是我收到了这个错误:
Installing paperclip 5.0.0
Gem::InstallError: paperclip requires Ruby version >= 2.1.0.
所以我跑:
rbenv install 2.1.0
我运行"捆绑安装"再次,我得到同样的错误。
红宝石版本是:
ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
有什么建议吗?
如果我跑:
gem env
我明白了:
- GEM PATHS:
- /Users/lkrubner/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0
- /Users/lkrubner/.gem/ruby/2.3.0
答案 0 :(得分:0)
我想现在已经修好了。删除所有.bashrc和.bash_profile和.zshrc并将默认shell更改回bash并删除rvm的所有提及并重新安装rbenv并重新安装" gem"然后" Bundler"似乎至少解决了一些路径问题。我通过做" gem install paperclip"修复了Paperclip的问题。我想全局安装了paperclip,但至少它可以在我的本地Mac上运行。非常脆弱,但事情正在发挥作用。
我希望我能在这个项目中使用Clojure。每当我和Ruby纠缠在一起时,我最终都会遇到这种无尽的迷路问题。有了Clojure,我受到Leiningen的保护,Leiningen似乎用纯粹的魔法来解决这个问题。
答案 1 :(得分:0)
我刚刚运行gem update bundler
来解决此问题。