Подтвердить что ты не робот

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

Я получаю эту ошибку при запуске моего сервера 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

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

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

Любые мысли о том, как это исправить?

4b9b3361

Ответ 1

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

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

$prompt > cd vendor/gems/authlogic-2.1.3

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

Ответ 2

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

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

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

$> rake gems:unpack GEM=hoptoad_notifier

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

Я удалил каталог из поставщика /gems и снова попробовал как:

$> sudo rake gems:unpack GEM=hoptoad_notifier

Работал на этот раз, распакован должным образом и без ошибок.

Ответ 3

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

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

Ответ 4

Мне пришлось залезть в vendor/gems/authlogic и удалить ".specification" из .gitignore

Как только вы это сделаете, вы можете запустить грабли gex: refresh_specs

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

Ответ 5

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

Во-первых, я установил драгоценный камень, используя стандартный "authlogic gem install", который помещал драгоценный камень в /Library/Ruby/Gems/ 1.8.

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

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

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

Ответ 6

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

$prompt > cd vendor/gems/authlogic-2.1.3

$prompt > gem build authlogic.gemspec

$prompt > gem install authlogic.gemspec

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