Как я могу исправить эту ошибку? config.gem: распакованный гем authlogic-2.1.3 в vendor / gems не имеет файла спецификации - PullRequest
12 голосов
/ 17 февраля 2010

Я получаю эту ошибку при запуске сервера Mongrel ...

$ script/server --debugger
=> Booting Mongrel
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
config.gem: Unpacked gem authlogic-2.1.3 in vendor/gems has no specification file. Run 'rake gems:refresh_specs' to fix this.
=> Debugger enabled
=> Call with -d to detach
=> Ctrl-C to shutdown server

Когда я запускаю rake gems: refresh_specs напоминает, что я получаю еще одну ошибку:

rake aborted!
undefined method `installed_source_index' for #<Gem::SourceIndex:0x100551a58>

Есть мысли, как это исправить?

Ответы [ 6 ]

22 голосов
/ 23 февраля 2010

Я не уверен, почему он сломан в Authlogic, но мне пришлось сгенерировать его сам.

Попробуйте это в своем проекте Rails:

$ prompt> cd vendor / gems / authlogic-2.1.3

$ prompt> authlogic спецификации gem> .specification

4 голосов
/ 18 мая 2010

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

Я обновлял hoptoad для использования уведомителя в качестве драгоценного камня вместо плагина, и одна из инструкций со страницы Github - распаковать драгоценный камень в vendor / gems.

Я нахожусь на Mac OS X, и я распаковал драгоценный камень так:

$> rake gems:unpack GEM=hoptoad_notifier

После того, как я сделал это, я получил указанную ошибку, и гем фактически не распаковал (он создал каталог в vendor / gems, но фактически не распаковал гем).

Я удалил каталог из vendor / gems и повторил попытку:

$> sudo rake gems:unpack GEM=hoptoad_notifier

На этот раз сработало, распаковалось правильно, без ошибок.

3 голосов
/ 21 мая 2010

Я считаю, что это причина: http://github.com/binarylogic/authlogic/commit/05e452472616bd60bb81affc75a1cb3d95cf7857

Владелец намеренно добавил gitignore в файл .specification.Я предполагаю, что вы заморозите этот конкретный гем и отправите его в ветке кода под vendor / gems / .. и, как и ожидалось, git игнорирует этот конкретный файл при запросе

1 голос
/ 16 ноября 2010

У меня были такие же проблемы с "неизвестным GEM". После долгих потрясений я нашел следующий рецепт:

Сначала я установил драгоценный камень, используя стандартную «gem install authlogic», которая поместила драгоценный камень в /Library/Ruby/Gems/1.8.

В RadRails я использовал задачу rake "gems: unpack", которая собирает все драгоценные камни, относящиеся к вашему приложению, и помещает их в / vendor / gems по желанию.

Затем я удалил общесистемный гем, чтобы убедиться, что он действительно работает: gem uninstall authlogic --install-dir = / Library / Ruby / Gems / 1.8

Кажется, работает хорошо.

1 голос
/ 09 июля 2010

Мне нужно было зайти в vendor / gems / authlogic и удалить «.specification» из .gitignore

После того, как вы это сделаете, вы можете запустить rake gems: refresh_specs

Единственная проблема в том, что в следующий раз, когда вы обновите этот драгоценный камень, плохой .gitignore возвращается

0 голосов
/ 29 января 2015

Сборка и установка гема перед генерацией файла .specification

$ prompt> cd vendor / gems / authlogic-2.1.3

$ prompt> gem build authlogic.gemspec

$ prompt> gem install authlogic.gemspec

$ prompt> authlogic спецификации gem> .specification

...