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

"gem install" и "bundle install" не устанавливают зависимости gem после удаления вручную gem. Как сообщить Rubygems, что драгоценные камни были удалены вручную?

Я пытался создать capybara-webkit на XP. Я выполнил инструкцию this. Он говорит, чтобы сделать bundle install:

 $ cd ruby193\capybara-webkit
 $ bundle install

Эта команда установила множество драгоценных камней. К сожалению, я не мог создать capybara-webkit, поэтому я вручную удалил все драгоценные камни, которые он установил. После этого у меня возникают проблемы с gem install и bundle install - эти команды рассматривают удаленные камни как установленные на моем компьютере и не устанавливают их, если они зависят от некоторых других камней, которые я хочу установить сейчас.

См. пример. Я делаю bundle install для capybara-webkit, и он говорит, что все драгоценные камни присутствуют:

C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\capybara-webkit>bundle install
Resolving dependencies...
Using rake (0.9.2)
Using addressable (2.3.2)
Using bundler (1.3.5)
Using appraisal (0.4.0)
Using mime-types (1.22)
Using nokogiri (1.5.9)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using xpath (2.0.0)
Using capybara (2.1.0)
Using json (1.8.0)
Using capybara-webkit (1.0.0) from source at .
Using ffi (1.2.0)
Using childprocess (0.3.6)
Using diff-lcs (1.1.2)
Using websocket (1.0.6)
Using libwebsocket (0.1.7.1)
Using subexec (0.0.4)
Using mini_magick (3.2.1)
Using multi_json (1.5.0)
Using rack-protection (1.3.2)
Using rspec-core (2.6.4)
Using rspec-expectations (2.6.0)
Using rspec-mocks (2.6.0)
Using rspec (2.6.0)
Using rubyzip (0.9.9)
Using selenium-webdriver (2.27.2)
Using tilt (1.3.3)
Using sinatra (1.3.5)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

Но теперь я проверяю эти драгоценные камни на bundle show, и он говорит, что все они были удалены:

C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\capybara-webkit>bundle show sinatra
The gem sinatra has been deleted. It was installed at:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.5

C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\capybara-webkit>bundle show selenium-webdriver
The gem selenium-webdriver has been deleted. It was installed at:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.27.2

C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\capybara-webkit>bundle show mini_magick
The gem mini_magick has been deleted. It was installed at:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mini_magick-3.2.1

Похоже, Rubygems как-то где-то помнит, что драгоценные камни были установлены и считает, что они все еще присутствуют. Кажется, что драгоценные камни должны быть удалены только командой gem uninstall, а не вручную.

Есть ли способ очистить кеш Rubygems? Как сообщить Rubygems, что некоторые драгоценные камни были удалены вручную и чтобы они теперь рассматривали их как удаленные?

4b9b3361

Ответ 1

После удаления жемчужины вручную удалите файл gemspec для этого драгоценного камня, присутствующего на "C:\Ruby187\lib\ruby ​​\ gems\1.8\Specifications". Затем попробуйте установить пакет.

Ответ 2

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

Если вы хотите переустановить любой драгоценный камень, который вы удалили вручную, вам нужно будет удалить любую ссылку на него в каталогах в $HOME/.rvm/gems/ruby-X/, а затем запустите bundle install. Если вы вручную удалили все свои драгоценные камни, удаление всего в каталоге $HOME/.rvm/gems/ruby-X/ и запуск bundle будут переустанавливать их все.

Ответ 3

In my case I had made a Gemfile in a directory and was doing a bundle install and I happened to deleted gem manually on os x due to which I was not able to install the gem again. 
 1. gem list | grep your_gem_name
 2. uninstall your_gem_name
 3. removed Gemfile.lock
 4. bundle install from my Gemfile location 

Ответ 4

Run:

bundle install --force

Это переустановит все драгоценные камни, но сохранит версии.