Ответ 1
После удаления жемчужины вручную удалите файл gemspec для этого драгоценного камня, присутствующего на "C:\Ruby187\lib\ruby \ gems\1.8\Specifications". Затем попробуйте установить пакет.
Я пытался создать 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, что некоторые драгоценные камни были удалены вручную и чтобы они теперь рассматривали их как удаленные?
После удаления жемчужины вручную удалите файл gemspec для этого драгоценного камня, присутствующего на "C:\Ruby187\lib\ruby \ gems\1.8\Specifications". Затем попробуйте установить пакет.
Я знаю, что этот ответ приходит очень поздно, но, имея ту же самую проблему, вот что сработало для меня; для тех, кто в этом нуждается.
Если вы хотите переустановить любой драгоценный камень, который вы удалили вручную, вам нужно будет удалить любую ссылку на него в каталогах в $HOME/.rvm/gems/ruby-X/
, а затем запустите bundle install
. Если вы вручную удалили все свои драгоценные камни, удаление всего в каталоге $HOME/.rvm/gems/ruby-X/
и запуск bundle
будут переустанавливать их все.
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
Run:
bundle install --force
Это переустановит все драгоценные камни, но сохранит версии.