Bundle install在./mysql2文件夹中安装gem

Sly*_*Sly 5 rubygems ruby-on-rails bundler mysql2

我最近在我的机器上升级了mysql.结果我试图相应地更新我的mysql2 gem.在这样做的过程中,我运行"bundle install",由于某些原因,我的Gemfile中的所有gem都安装在./mysql2目录中?

ruby-1.9.2-p180 [dev]:project.git$ bundle install
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162.
Fetching source index for http://rubygems.org/
Installing rake (0.8.7) 
Installing ZenTest (4.5.0) 
Installing abstract (1.0.0) WARNING: abstract-1.0.0 has an invalid nil value for @cert_chain

Installing activesupport (3.0.7) 
Installing builder (2.1.2) WARNING: builder-2.1.2 has an invalid nil value for @cert_chain

Installing i18n (0.5.0) 
Installing activemodel (3.0.7) 
Installing erubis (2.6.6) 
.
.
.
Installing typhoeus (0.2.4) with native extensions 
Installing webrat (0.7.3) 
Installing will_paginate (2.3.15) 
Your bundle is complete! It was installed into ./mysql2
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我的.bundle目录还包含一个配置文件,表明BUNDLE_PATH是mysql2?我不知道它来自何处或如何到达那里......

ruby-1.9.2-p180 [dev]:project.git$ ls
Gemfile     README      app     config.ru   doc     log     mysql2      script      test
Gemfile.lock    Rakefile    config      db      lib     misc        public      spec        vendor
ruby-1.9.2-p180 [dev]:project.git$ ls -a
.       .git        Gemfile     Rakefile    config.ru   lib     mysql2      spec
..      .gitignore  Gemfile.lock    app     db      log     public      test
.bundle     .rspec      README      config      doc     misc        script      vendor
ruby-1.9.2-p180 [dev]:project.git$ cd .bundle
ls
ruby-1.9.2-p180 [dev]:.bundle$ ls
config
ruby-1.9.2-p180 [dev]:.bundle$ cat config
--- 
BUNDLE_DISABLE_SHARED_GEMS: "1"
BUNDLE_PATH: mysql2
Run Code Online (Sandbox Code Playgroud)

这是我的Gemfile:

source 'http://rubygems.org'

gem 'rake'
gem 'rails'
gem 'mysql2', '0.2.6'
gem 'legacy_data'
gem 'htmlentities'
gem 'httparty'
gem 'net-ssh'
gem 'net-sftp'
gem 'rsolr'
gem 'activerecord-import'
gem 'ar-extensions'
gem 'typhoeus'
gem 'composite_primary_keys'
gem 'devise'
gem 'authlogic'
gem 'will_paginate'
gem 'json_pure' # Note that installing the 'json' gem results in a "[BUG] unknown type 0x22 (0xc given)" error when loading rails console
gem "friendly_id", "~> 3.2.1"

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Gems for RSpec
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
group :search_development, :test do
  gem 'rspec-rails', "~> 2.4"
  gem 'webrat'
  gem 'rspec'
end

gem 'autotest'
Run Code Online (Sandbox Code Playgroud)

我一直在旋转我的轮子一段时间.提前感谢任何关于如何进行的想法或想法.(另外,这是我第二次安装到mysql2目录中,所以我决定在挖掘更深的洞之前停下来)

Jos*_*ach 13

这实际上是我几周前遇到问题的弃用行为.您可能运行了该命令bundle install mysql,该命令实际运行bundle install --path mysql并将其安装目录永久设置为./mysql2(尽可能少).解决此问题的最简单方法是运行bundle install --system,这应该可以恢复默认安装目录.下次如果要升级单个gem,请使用该命令bundle update mysql.

  • 另外,重新@mikhailov评论,一个可以`rm./ bundle/config`,然后重新运行`bundle install`,它将自行纠正! (2认同)