2013-04-07 15 views
12

Nur Upgrade auf Ruby 2.0/Rails 4.0 und versuchen, Bundle laufen auf einem neuen Schienen-Projekt zu installieren. Jedes Mal, wenn er trifft etwas, das nicht bereits installiert ist, wird es ausspucken:Bundle-Installation gebrochen auf Ruby 2.0 Upgrade

Installing coffee-rails (4.0.0.beta1) 
Errno::ENOENT: No such file or directory - /usr/lib/ruby/gems/2.0.0/build_info/coffee-rails-4.0.0.beta1.info 
An error occurred while installing coffee-rails (4.0.0.beta1), and Bundler cannot continue. 
Make sure that `gem install coffee-rails -v '4.0.0.beta1'` succeeds before bundling. 

Also dann

gem install coffee-rails -v '4.0.0.beta1' 

ich laufen und es installiert in Ordnung, und ich erneut ausführen Bündel installieren und diese wiederholen müssen für Jedes Mal, wenn es in eine Edelsteinversion läuft, habe ich noch nicht installiert. Was ist das Problem hier?

+0

Was macht Ihr Gemfile aussehen. –

+0

Was ist die Standard-GEM-Datei für neue Schienenprojekte? –

+0

Welche Version von Bundler? –

Antwort

0

Legen Sie dies in Ihre Gemfile und dann Bundle installieren.

group :assets do 
    gem 'coffee-rails', github: 'rails/coffee-rails' 
end 
+0

Dieses Juwel war nur ein Beispiel, es passiert mit jedem Juwel, das ich nicht installiert habe. –

+0

In Rails 4 gibt es keine Asset-Gruppe mehr. – MarkoHiel

4

Die bundle ausführbar ist nur ein Shell-Skript, und es hat eine Shebang-Zeile, die auf einen bestimmten Ruby-ausführbaren zeigen wird (oder zu /usr/bin/env ruby). Es hört sich so an, als ob die Shebang-Zeile auf eine andere Version von Ruby verweist, nicht auf die Version 2.0, und nicht auf die, auf die die Shebang-Zeile in Ihrer ausführbaren Datei verweist.

Run, das zu sehen, was es zeigt auf: head -1 $(which bundle)

Unabhängig Linie, die Ihnen zeigt, die #! Präfix abzustreifen und diese Zeile mit dem -v Schalter laufen, um zu sehen, welche Version von Ruby ist (wenn es nicht offensichtlich ist,). Wenn also die Shebang-Linie #!/usr/bin/ruby war, dann führe /usr/bin/ruby -v aus. Wenn meine Theorie stimmt, dann bekommst du dort eine Versionsnummer von nicht 2.0.

Basierend auf dem, was Sie gesagt haben, zeigt Ihre gem ausführbare Datei auf die 2.0 Ruby, so dass die Reparatur hier ist einfach zu deinstallieren und dann neu installiert Bundler Juwel. Das sollte die richtige Ruby 2.0 Shebang-Zeile in Ihre ausführbare Datei bundle setzen.

8

In meinem Fall stellte sich heraus, dass Bundle versuchte, Edelsteine ​​in den globalen Speicherort unter /usr/lib/ruby/gems/2.0.0 zu installieren, aber da ich es nicht über sudo aufgerufen hatte, endete es mit einem Berechtigungsfehler . Ich wollte sowieso zu meinem Heim-Dir installieren, so stellte sich heraus, dass ich tun kann:

GEM_HOME=~/.gem/ruby/2.0.0/ bundle 

und leben glücklich bis ans Ende.

Verwandte Themen