2013-07-04 6 views
11

Ich habe versucht, Capybara-Webkit auf XP zu bauen. Ich folgte this Anweisung. Es sagt bundle install zu tun:"Gem install" und "bundle install" installieren keine Edelsteinabhängigkeiten nach dem manuellen Löschen von Gemischen. Wie kann ich Rubygems mitteilen, dass Edelsteine ​​manuell gelöscht wurden?

$ cd ruby193\capybara-webkit 
$ bundle install 

Dieser Befehl viele Edelsteine ​​installiert. Leider konnte ich kein capybara-webkit erstellen, also löschte ich manuell alle Edelsteine, die es installiert hatte. Danach habe ich Probleme mit gem install und bundle install - diese Befehle betrachten gelöschte Edelsteine ​​als auf meinem Computer installiert und installieren sie nicht, wenn sie Abhängigkeiten von anderen Edelsteinen sind, die ich jetzt installieren möchte.

Bitte beachten Sie ein Beispiel. Ich mache bundle install für capybara-webkit und es sagt, dass alle Edelsteine ​​vorhanden sind:

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. 

Aber jetzt überprüfe ich diese Edelsteine ​​mit bundle show und es sagt, dass sie alle gelöscht wurden:

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 

Es sieht aus wie Rubygems Irgendwie erinnert sich irgendwo, dass Edelsteine ​​installiert wurden und meint, dass sie noch da sind. Es scheint, dass Edelsteine ​​nur durch gem uninstall Befehl und nicht manuell gelöscht werden sollten.

Gibt es eine Möglichkeit, den Rubygems-Cache zu löschen? Wie kann ich Rubygems mitteilen, dass einige Edelsteine ​​manuell gelöscht wurden und sie jetzt als deinstalliert betrachtet werden sollten?

Antwort

21

Löschen Sie das Gem manuell. Löschen Sie die Gemspec-Datei für dieses Juwel, das unter "C: \ Ruby187 \ lib \ ruby ​​\ edges \ 1.8 \ specifications" vorhanden ist. Dann versuchen Sie das Bundle-Installationsprogramm.

+3

... oder, wenn Sie RVM verwenden, löschen Sie die Gemspec für diese Datei unter '$ HOME/.rvm/eds/ruby-X/specifications /' – seb

4

Ich weiß, dass diese Antwort sehr spät kommt, aber nachdem ich das selbe Problem hatte, hier ist, was für mich funktionierte; für jeden, der es brauchen könnte.

Wenn Sie ein Juwel, das Sie manuell entfernt haben, erneut installieren möchten, müssen Sie alle Verweise darauf in den Verzeichnissen in $HOME/.rvm/gems/ruby-X/ entfernen und dann bundle install ausführen. Wenn Sie alle Ihre Edelsteine ​​manuell gelöscht hätten, würden Sie alle Dateien im Verzeichnis $HOME/.rvm/gems/ruby-X/ löschen und bundle ausführen.

+0

die Referenz, die mich stecken gelassen hatte, war '/ specifications /' für was es wert ist –

+0

das funktionierte für mich. bundle show your_gem_name, gehe in dieses Verzeichnis und prüfe den Spezifikationsordner, entferne das Gemspec und das Bundle-Update funktioniert einwandfrei – Pauls

4
 
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 
0

Run:

bundle install --force 

Dadurch werden alle Edelsteine ​​neu zu installieren, aber Versionen halten.

Verwandte Themen