У меня есть драгоценный камень, который мы назовем mygem
, который имеет исполняемый файл, используемый в качестве инструмента CLI.Ruby Неразрешенные спецификации во время Gem :: Specification.reset с установленными драгоценными камнями
Файл mygem/bin/mygem
:
#!/usr/bin/env ruby
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'bundler/setup'
....code goes here....
mygem.gemspec
:
Gem::Specification.new do |gem|
gem.bindir = 'bin'
gem.executables = ['mygem']
end
сборки и установки:
gem build mygem.gemspec
gem install mygem-0.1.0.gem
<optionally bundle install, but that won't fix the error>
И, в конце концов, я могу успешно позвонить mygem
из командной строки и скрипт запускается.
Проблема в том, что она может работать только из папки, которая не содержит Gemfile
. При выполнении в противном случае, система выдает ошибку:
WARN: Unresolved specs during Gem::Specification.reset:
json (>= 0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Could not find differ-0.1.2 in any of the sources
Run `bundle install` to install missing gems.
Фактические драгоценные камни, которые показывают в этом сообщении об ошибке варьируется в зависимости от Gemfile в текущем каталоге.
Бег bundle exec mygem
подавляет часть сообщения об ошибке, но по-прежнему не удается выполнить, если bundle install
не запускается на Gemfile в другого приложения:
Could not find differ-0.1.2 in any of the sources
Run `bundle install` to install missing gems.
Как это можно исправить?
Проблема в том, что он уже там – Drew
@Drew Вы уже проверили другие сообщения на аналогичных/те же сообщения об ошибках ? Был быстрый поиск в Google и нашел много вопросов/ответов. Это может быть ваш переулок: http://stackoverflow.com/questions/17936340/unresolved-specs-during-gemspecification-reset – Andrew