Неинициализированная константа Psych :: Syck on gem install - PullRequest
5 голосов
/ 06 июля 2011

Я перенес камень на rubygems.org, и когда я делаю 'установку камня (gem)', я получаю эту ошибку:

ERROR:  While executing gem ... (NameError)
uninitialized constant Psych::Syck

Я могу сделать 'сборку gem (gem) .gemspec', чтобы сгенерировать локальный гем, а затем установить gem install (gem) .gem, и он установится нормально. Я также могу поместить гем в Gemfile моего приложения с указателем на репозиторий Github, и это тоже будет работать. Я попытался установить гем (с rubygems.org на нескольких компьютерах, и все они получают ту же ошибку.

У меня нет идей относительно того, что может привести к сбою установки, когда она выполняется на rubygems.org, но не при локальной ее генерации. Я использую Ювелир, чтобы подтолкнуть камень на rubygems.org.

Ответы [ 3 ]

6 голосов
/ 10 сентября 2011

Конкретная ошибка, которую я получил, была: uninitialized constant Psych::Syck (NameError) при установке пакета.

Это произошло при установке simplecov (потрясающего инструмента покрытия кода) версии 0.5.0. Работа в Ubuntu 11.04 и использование RVM.

Исправлена ​​проблема с gem update --system

Это обновляет рубины и выдает следующий вывод:

Updating rubygems-update
Fetching: rubygems-update-1.8.10.gem (100%)
Successfully installed rubygems-update-1.8.10
Installing RubyGems 1.8.10
RubyGems 1.8.10 installed

== 1.8.10 / 2011-08-25

RubyGems 1.8.10 contains a security fix that prevents malicious gems from
executing code when their specification is loaded.  See
https://github.com/rubygems/rubygems/pull/165 for details.

* 5 bug fixes:

* RubyGems escapes strings in ruby-format specs using #dump instead of #to_s
  and %q to prevent code injection.  Issue #165 by Postmodern
* RubyGems attempt to activate the psych gem now to obtain bugfixes from
  psych.
* Gem.dir has been restored to the front of Gem.path.  Fixes remaining
  problem with Issue #115
* Fixed Syck DefaultKey infecting ruby-format specifications.
* `gem uninstall a b` no longer stops if gem "a" is not installed.


------------------------------------------------------------------------------

RubyGems installed the following executables:
    /home/baller/.rvm/rubies/ruby-1.9.2-p180/bin/gem

RubyGems system software updated
3 голосов
/ 12 сентября 2011

Решением было бы запустить следующую команду в вашем терминале:

gem update --system

Это ошибка в системной версии гема, которая вызывает эту проблему. Это сработало для меня.

3 голосов
/ 06 июля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...