Bundle install устанавливает драгоценные камни.папка / mysql2


Я недавно обновил mysql на своей машине. В результате я пытаюсь обновить мой камень mysql2 соответственно. В процессе этого я запускаю "bundle install", и по какой-то причине все драгоценные камни в моем Gemfile устанавливаются в a ./ каталог 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

Почему-то тоже мой .bundle dir содержит конфигурационный файл, который указывает, что 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

Вот мой 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'

Я уже какое-то время кручу свои колеса вокруг этого. Заранее благодарю за любые идеи или мысли о том, как действовать дальше. (Кроме того, это второй раз, когда я устанавливаю пакет в mysql2 dir, поэтому я решил остановиться сейчас, прежде чем копать более глубокую яму)

2 5

2 ответа:

На самом деле это устаревшее поведение, с которым у меня были проблемы пару недель назад. Скорее всего, вы запустили команду bundle install mysql, которая на самом деле выполняет bundle install --path mysql и постоянно устанавливает свой каталог установки ./mysql2 (так мало, как это имеет смысл). Самый простой способ исправить это - запустить bundle install --system, и это должно восстановить каталог установки по умолчанию. В следующий раз, если вы хотите обновить один драгоценный камень, используйте команду bundle update mysql.

Я не уверен, почему он устанавливает все в папку mysql2, но чтобы вернуть его к тому, как он должен быть запущен, это: bundle install --path vendor

Вы должны быть в состоянии безопасно удалить папку mysql2, и ваши драгоценные камни будут там, где они должны быть. Надеюсь, кто-нибудь еще сможет объяснить, почему он установлен в эту другую папку.