ruby gems Gem "Строка с измененным номером версии"



ruby gem pack (3)

Я строю драгоценный камень. Я просто получил основную структуру проекта, и я попытался построить ее с помощью gem build my_gem.gemspec , который отлично работал. Затем я установил его с помощью gem install My\ Gem-0.0.1.gem и он по-прежнему выглядел так, как будто он работал нормально. Затем я попытался запустить irb и я получил следующее:

/Users/<username>/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/version.rb:206:in `initialize': Malformed version number string on (ArgumentError)

Затем я попытался внести некоторые изменения и сохранил их. Я запустил gem build my_gem.gemspec . Такая же ошибка. Все irb , rails и gem генерируют трассировку стека с этим вверху. Что я сделал, чтобы разбить все эти команды и как мне отменить его?


Answer #1

Вы должны вручную удалить свой камень:

cd $GEM_HOME
find . -path \*my_gem\*

Если все выглядит хорошо (т. Е. Нет файлов, которые не связаны с вашим камнем):

find . -path \*my_gem\* -delete

Прежде чем снова установить свой драгоценный камень, убедитесь, что указанная вами version в вашем .gemspec .

UPD .

Другие места для поиска остатка драгоценного камня:

~/.rvm/gems/ruby-<version>@global
~/.rvm/gems/ruby-<version>
/System/Library/Frameworks/Ruby.framework/
# look for "GEM PATHS" section
gem env
# rbenv paths
~/.rbenv/versions
~/.gem/

UPD2

Задача решена! Сделанные шаги:

Это показало, где именно этот конкретный исполняемый файл Rubygems, который не удалось загрузить:

rbenv which gem
# => /Users/<username>/.rbenv/versions/2.2.2/bin/gem

Затем оказывается, что в директории 2.2.2 есть каталоги cache , doc и specifications , все из которых содержат файл или подкаталог с остатком сломанного драгоценного камня. Их устранение устранило проблему.


Answer #2

Я не мог найти файлы в ссылочном пути или некоторые другие предложенные пути в этом сообщении. Некоторая вещь, которая помогла мне, заключалась в том, чтобы сначала закомментировать ошибку, возникшую в файле version.rb в строке 201. Затем используйте каталог GEM PATH, используя $ gem env чтобы найти путь, который имел ссылки на драгоценный камень. Обязательно удалите все из папок документов, кешей и спецификаций. Это, наконец, решило мою проблему.


Answer #3

(2016-май-24)
Я решаю эту проблему сегодня.
Я пытался научиться писать драгоценный камень. а затем вызвать эту проблему.
Я предполагаю, что имя моего драгоценного камня содержит пробелы: «hola 1c7»
и драгоценный камень не говорят вам, как решить этот prbolem, это раздражает

вы должны перейти к: /usr/local/lib/ruby/gems/2.3.0/specifications удалить, что xxx.gemspec

в моем случае имя моего драгоценного камня - «hola 1c7»
поэтому я удаляю "hola 1c7-0.1.2.gemspec"
Я думаю, проблема космических причин.

если это не работает,
попробуйте найти имя своего драгоценного камня в /usr/local/lib/ruby/gems/ и удалите весь файл, который вы можете найти,
в моем случае, сначала я удаляю

hola 1c7.1.3.2.gem из /usr/local/lib/ruby/gems/2.3.0/cache
поэтому команда:
/usr/local/lib/ruby/gems/2.3.0/cache$ sudo rm -rf hola\ 1c7-1.3.2.gem

а затем /usr/local/lib/ruby/gems/2.3.0/gems$ sudo rm -rf hola\ 1c7-1.3.2/

Моя версия Ruby: Ruby 2.3.0
Моя версия Linux: Ubuntu 16.04 LTS





gem