#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #gemfile
#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #gemfile
Вопрос:
Я запустил bundle install
, и это было успешно. Однако, когда я запустился ruby script/server
, я получил много сообщений до фактического запуска сервера:
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:127.
Как я могу это исправить?
Ответ №1:
Похоже, что устаревание находится внутри самого rubygems.
Просто запустите это в консоли, чтобы обновить его:
gem update --system
Комментарии:
1. получил эту ошибку при попытке обновить обновление rubygems-ОШИБКА обновления: при выполнении gem… (Gem:: RemoteFetcher::FetchError) Ошибка :: ВРЕМЯ ожидания: время ожидания соединения истекло — connect (2) ( rubygems.org/gems/rubygems-update-1.8.11.gem )
2. я. я попробовал sudo gem update —system, но вот когда я получаю эту ошибку .. я не использую rvm, и я думаю, что проблема связана с исходным сервером gem.. может быть, мне нужно указать какой-то другой источник!! Не уверен, что это сработает
Ответ №2:
Это никому не понравится, но пока у меня это работает.
версии:
ruby -v # => ruby 1.8.7 (2012-02-08 уровень исправлений 358) [universal-darwin11.0]
rails -v # => Rails 2.3.5
gem -v # => 1.8.25
Исправление:
sudo vi /Library/Ruby/Site/1.8/rubygems/source_index.rb
(файл может быть расположен в другом месте вашей системы, прочитайте ваше сообщение об ошибке, оно сообщит вам, где он находится)
Измените строку 127 с:
add_spec gemspec, если gemspec
на:
Gem::Specification.add_spec gemspec, если gemspec
теперь rubygems будет использовать метод без амортизации, и предупреждение должно исчезнуть.
Предупреждение Уилл Робинсон: я программист-ковбой и понятия не имею, какие побочные эффекты это может иметь, но пока у меня все работает нормально. Похоже, что файл source_index.rb не является частью репозитория rubygems github, поэтому я предполагаю, что он создан каким-то другим процессом. Я слышал, что если вы используете rails 3, это исчезнет. :: пожимает плечами::
Комментарии:
1. После небольшого поиска в Google я подозреваю, что эта проблема связана с системой rubygems, которая предварительно установлена на Mac. opensource.apple.com/source/RubyGems/RubyGems-17/rubygems/lib/… Возможно, что удаление rubygems все вместе, а затем повторная установка из исходного кода rubygems на github может решить эту проблему. Я не могу рисковать своей средой разработки прямо сейчас, чтобы попробовать.