#ruby-on-rails #ruby #rubygems #rake
#ruby-on-rails #ruby #rubygems #грабли
Вопрос:
Заранее прошу прощения за свое невежество, но у меня возникает эта проблема при запуске
"rake db:create:all"
в моем терминале.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:84.
WARNING: This version of mysql2 (0.3.7) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x
WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2 )' instead.
at /usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"testApp", "host"=>"localhost", "password"=>"mysql"}, charset: utf8, collation: utf8_unicode_ci
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"testApp", "host"=>"localhost", "password"=>"mysql"}, charset: utf8, collation: utf8_unicode_ci
я следил за Леонидом Шевцовым
Мой второй вопрос: Когда у меня bundle update
это происходит вот так:
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/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 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
Fetching source index for http://rubygems.org/
Enter your password to install the bundled RubyGems to your system:
/usr/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:122:in `initialize': no metadata found in /usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2.gem (Gem::Package::FormatError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:20:in `new'
from /usr/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:20:in `open'
from /usr/lib/ruby/site_ruby/1.8/rubygems/package.rb:44:in `open'
from /usr/lib/ruby/site_ruby/1.8/rubygems/format.rb:62:in `from_io'
from /usr/lib/ruby/site_ruby/1.8/rubygems/format.rb:46:in `from_file_by_path'
from /usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'
from /usr/lib/ruby/1.8/open-uri.rb:32:in `open'
from /usr/lib/ruby/site_ruby/1.8/rubygems/format.rb:45:in `from_file_by_path'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:73:in `fetch'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:45:in `run'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install'
from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `send'
from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/bin/bundle:13
from /usr/bin/bundle:19:in `load'
from /usr/bin/bundle:19'
Кажется, я не могу запустить обновление пакета без ошибок. Я запускаю свою машину с Fedora 15 и Mysql 5.5.
Спасибо и еще раз прошу прощения за свое невежество; я новичок в Rails.
Заранее спасибо! 🙂
Комментарии:
1. какую версию rails вы используете?
2. в настоящее время я использую 3.0.5 rails
Ответ №1:
Похоже, вам следует ограничить mysql2
версию в вашем Gemfile:
gem 'mysql2', '~>0.2.0'
[ПРАВИТЬ] …а затем bundle install
, конечно, сделайте
Комментарии:
1. извините за мое невежество, я попытался последовать вашему предложению и привел меня к этому извините, я просто новичок в мире ruby, в /usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2.gem не найдено метаданных (Gem::Package::FormatError)
Ответ №2:
Чтобы избавиться от предупреждений об устаревании rubygems, обновите до последней версии RubyGems и запустите
gem pristine --all --no-extensions
.
Что касается ваших ошибок mysql. Убедитесь, что у вас включена служба / демон MySQL, и убедитесь, что ваш конфигурационный файл database.yml указан правильно.
Ответ №3:
И, как мы можем видеть в журналах, я думаю, вы указали mysql в качестве адаптера в вашем config/database.yml
измените его на :
adapter: mysql2
Редактировать:
что касается вашей ошибки форматирования, я знаю, что должен использовать :
bundle exec rake db:<command>
для того, чтобы выполнить rake сейчас, вы можете попробовать это?
РЕДАКТИРОВАТЬ 2 :
Что ж, я предлагаю вам использовать RVM для настройки вашего проекта с использованием ruby 1.9.2. Прочитайте документ RVM для простого руководства, как это сделать.
Затем выполните установку пакета
После этого убедитесь, что вы сделали:
ruby -v
это должно быть 1.9.2
затем повторите попытку создания db:create следующим образом:
bundle exec rake db:create:all
Надеюсь, это наконец сработает. 😉
Комментарии:
1. спасибо, я не заметил, что ранее я пробовал решение leonid и привел меня к этому, в / usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2 не найдено метаданных.gem (Gem::Package::FormatError) извините, я просто новичок в мире ruby
2. Нет проблем, однажды я тоже был новичком, продолжайте в том же духе, вам понравится этот фреймворк, как только вы преодолеете эти начальные проблемы.
3. спасибо, есть идеи, как это решить? в /usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2 не найдены метаданные.gem (Gem::Package::FormatError)
4. Ммм …. не могли бы вы отредактировать свой вопрос и опубликовать полную трассировку. И используете ли вы RVM (Ruby Version Manager) в своем env.?
5. готово, я уже отредактировал свой вопрос, мне кажется, что я не могу обновить свой gemfile. у меня есть rvm в моем env, но я не очень часто им пользуюсь