2013-06-14 9 views
6

OS X 10.9 kommt mit Ruby 2.0.0p195, aber ich muss Ruby 1.8.7 installieren. Ich laufe immer wieder auf Fehler. Ich habe Xcode5-DP installieren und glaube, dass auch die Befehlszeilen-Tools installiert sind.Probleme beim Downgrade von Ruby auf OS X Mavericks

Im Terminal:

sudo rvm install 1.8.7 
Searching for binary rubies, this might take some time. 
No binary rubies available for: osx/10/x86_64/ruby-1.8.7-p371. 
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies. 
Installing requirements for osx, might require sudo password. 
Certificates in '/usr/local/etc/openssl/cert.pem' already are up to date. 
Installing Ruby from source to: /Users/alextoul/.rvm/rubies/ruby-1.8.7-p371, this may take a while depending on your cpu(s)... 
ruby-1.8.7-p371 - #downloading ruby-1.8.7-p371, this may take a while depending on your connection... 
ruby-1.8.7-p371 - #extracted to /Users/alextoul/.rvm/src/ruby-1.8.7-p371 (already extracted) 
Patch stdout-rouge-fix was already applied. 
Patch no_sslv2 was already applied. 
ruby-1.8.7-p371 - #configuring... 
Error running 'env CFLAGS=-O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/readline/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/libxslt/include -I/usr/local/opt/libksba/include -I/usr/local/opt/openssl098/include LDFLAGS=-L/usr/local/opt/libyaml/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/libxslt/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/openssl098/lib ./configure --prefix=/Users/alextoul/.rvm/rubies/ruby-1.8.7-p371 --disable-install-doc --without-tcl --without-tk --enable-shared', 
please read /Users/alextoul/.rvm/log/ruby-1.8.7-p371/1371228839_configure.log 
There has been an error while running configure. Halting the installation. 

1371228839_configure.log sagt:

./configure 
configure: WARNING: unrecognized options: --without-tcl, --without-tk 
checking build system type... i686-apple-darwin13.0.0 
checking host system type... i686-apple-darwin13.0.0 
checking target system type... i686-apple-darwin13.0.0 
checking whether the C compiler works... no 
configure: error: in `/Users/alextoul/.rvm/src/ruby-1.8.7-p371': 
configure: error: C compiler cannot create executables 
See `config.log' for more details 

Andere (Nutz-) Info:

ruby -v 
> ruby 2.0.0p195 (2013-05-14 revision 40734) [universal.x86_64-darwin13] 
brew update 
> Already up-to-date. 
gcc --version 
> Configured with: --prefix=/Applications/Xcode5-DP.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode5-DP.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 
> Apple LLVM version 5.0 (clang-500.1.58) (based on LLVM 3.3svn) 
> Target: x86_64-apple-darwin13.0.0 
> Thread model: posix 
sudo rvm requirements 
> Installing requirements for osx, might require sudo password. 
> Certificates in '/usr/local/etc/openssl/cert.pem' already are up to date. 

Vielen Dank für Ihre Hilfe.

+0

öffnen Sie ein Thema für rvm: https://github.com/wayneeseguin/rvm/issues – mpapis

Antwort

13

10,9 ist ein früher Beta-Build des OS wechseln. [Edit: Bitte beachten Sie die Juli 2013 Datum dieser Antwort] Wenn ich 10,9 laufen würde ich annehmen, dass ich das Betriebssystem von Grund auf mindestens 2 weitere Male neu installieren muss. (Mindestens einmal während des Beta-Zyklus, weil, nun, es ist Beta, und einmal, wenn 10.9 in der allgemeinen Veröffentlichung herauskommt, weil, nun, Beta).

diese Gegeben schlage ich vor vier Handlungs (Pick 1 oder viele):

  • Arbeit mit den Jungs RVM und graben sich in 10.9 der wohl geändert Compiler-Umgebung und Ruby 1.8.7 Compilieren bekommen. Das ist kniffliger, weil dieses Zeug technisch unter NDA steht.
  • Richten Sie stattdessen eine VM ein und führen Sie Ruby 1.8.7 auf der VM aus. Bonuspunkte für die Verwendung von Vagrant und Chef/Puppet, da Sie die VM möglicherweise sogar neu erstellen müssen. (Bewahren Sie einfach die Vagrantfile- und Puppet- oder Chef-Konfigurationsdateien auf Github/Dropbox/was auch immer auf, damit Sie sie klonen und Ihre VM von Grund auf neu erstellen können.)
  • Oder starten Sie einfach auf 10.8, um die Produktionsarbeit zu erledigen. 10.8 ist ein produktives Betriebssystem, 10.9 sollte mit Vorsicht behandelt werden - es könnte Ihre Arbeit essen. Es sollte wirklich nicht für Produktionszwecke verwendet werden (aka: Tag für Tag schreiben Ruby-Code). Wenn Sie eine reine 10.9-App in Cocoa/Objective-C schreiben (oder RubyMotion oder etwas anderes aktualisieren), könnte das eine andere Sache sein (aber ich würde trotzdem gute Backups behalten und vorsichtig behandeln).
  • Arbeiten Sie in Richtung Aktualisierung Ihrer Codebasis für Ruby 2.0, wie Ruby 1.8.7 sowieso nicht mehr offiziell unterstützt wird.

Edit (24. Oktober 2013): Wenn Sie hier sind, weil Sie gerade installiert Mavericks (veröffentlicht 22. Oktober 2013), wollen Rubin 1.8.7 bekommen ein paar Tage nach dieser Veröffentlichung zu arbeiten, und RVM funktioniert nicht für Sie (weil Sie ungeduldig sind und kann nicht warten), hier ist was Sie tun können (was funktionieren sollte, obwohl ich kein rbenv Benutzer bin):

  1. Verwenden Macports zu installieren port install ruby. Dies ist Ruby 1.8.7. Diese Kompilation funktionierte für mich auf meiner Mavericks-Maschine (obwohl Sie Macports aus der Quelle installieren müssen und installieren Sie die Befehlszeile Entwickler-Tools, auch wenn Sie XCode 5 installiert haben. Ja, wirklich).
  2. Installieren Sie jetzt rbenv.
  3. Symlink /opt/local/bin/ruby1.8 im Ordner ~/.rbenv/versions/.Speziell ~/.rbenv/versions/ruby-1.8.7-p374
  4. Lesen Sie die Rbenv-Dokumentation, aber es sollte jetzt funktionieren! (Zumindest aus der Dokumentation. Auch hier kein rbenv Benutzer, sondern spielen eine auf TV)

Ich bin sicher, dass Sie dies auch mit Homebrew tun kann, aber ich weiß Ruby-1.8.7 richtig mit der installiert die neuesten Macports, weil ich das benutze (und es einfach nur für mich installiert habe).

+1

wenn es möglich wäre würde ich jeden Punkt der Antwort +1 geben;) – mpapis

+0

Danke ein Haufen .. Ich habe ein Problem an die RVM Jungs eingereicht. Es funktioniert auch nicht für Ruby 1.9.3 und ich bin mir nicht sicher, ob ich so einfach auf Ruby 2.0 upgraden kann. Ich werde OSx vorerst herunterstufen und auf einem zweiten Computer damit herumspielen. – Alextoul

+1

Anstatt rvm, versuche rbenv, Das wird von den Jungs von GitHub bevorzugt und von ihrem [Boxen Toolset] (http://boxen.github.com) verlangt, mit dem rvm nicht kompatibel ist. Ich bin vor kurzem von rvm auf rbenv gewechselt, teilweise deswegen, und es scheint zumindest genauso gut zu funktionieren (wenn auch etwas anders). Ich habe es noch nicht auf Mavericks versucht, also habe ich keine Ahnung, ob es in diesem Fall funktioniert, aber es ist einen Versuch wert. Werfen Sie einen Blick auf diese Artikel: http://www.overacker.me/blog/2013/07/10/getting-started-with-rbenv/ & http://edapx.com/2013/05/23/switching- von-rvm-to-rbenv/ –

0

Versuchen Sie Compiler

rvm install 1.8.7 --with-gcc=clang 
+2

dies für Probleme fragt, 'rubin 1.8.7' war nicht kompatibel mit' clang' überhaupt, zuerst Versuche, es zum Laufen zu bringen, wurden in 'ruby-1.9.3' gemacht, aber nur 'ruby-1.9.3-p194' funktionierte einwandfrei (minimale Probleme) und' ruby-2.0.0' war das erste, mit dem es besser lief 'clang' anstelle von' gcc-4.2' (der GNU GCC) – mpapis

3

Try this (sicherzustellen, dass das Entwickler-Toolchain erreichbar ist):

$ sudo xcode-select -s /Applications/Xcode5-DP.app/Contents/Developer 

Dann versuchen Sie es erneut.

10

Wenn Sie sehen diese Fehlermeldung:

configure: error: C-Compiler kann nicht ausführbaren Dateien erstellen:

Zunächst einmal sollten Sie sich Ihre Kommandozeilen-Tools aktualisiert haben:

$ xcode-select --install 

Jetzt möchte Apple, dass Sie ihrer Lizenz zustimmen, bevor Sie diese Tools verwenden können:

$ gcc 
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. 

$ sudo gcc 
You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode. 
[...] 

Nachdem Sie es akzeptiert haben, funktionieren die Befehlszeilentools wie erwartet.

+0

Ich erhalte den Fehler: "Die Software kann nicht installiert werden, da sie momentan nicht vom Software-Update-Server verfügbar ist." – nnyby

+0

@nnyby: Sind Sie sicher, dass Ihr Xcode auf dem neuesten Stand ist? – konrad

+0

ja ich habe Xcode 5.0.2. Ich löste das, indem ich einfach die Tools vom Apple Dev Center herunterlade. – nnyby

8

Wenn Sie Entwicklerwerkzeuge auf OS X Mavericks installiert haben, ist Ruby 1.8 bereits zusammen mit 2.0 installiert. Alles, was Sie tun müssen, ist, den symbolischen Link 'Current' zu wechseln, um auf das Verzeichnis 1.8 zu zeigen.

#Install Xcode Developer tools 
xcode-select --install 

#Delete Current symbolic link to Ruby 2.0 
sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current 

#Create new Current symbolic link to Ruby 1.8 
sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8 /System/Library/Frameworks/Ruby.framework/Versions/Current 

#Check Ruby version is 1.8.7 
ruby -v 
+0

Dieser arbeitete für mich, nachdem ich ALLES für zwei Tage versucht hatte. Vielen Dank! – ssantos

+0

Übrigens, wenn Sie jemals zurück zu 2.0 gehen müssen, löschen Sie einfach den symbolischen Link und dann erstellen Sie eine neue aktuelle symbolische Verbindung ersetzt den /1.8 Teil mit /2.0 –

+0

Dies funktioniert besonders gut, wenn Sie das kostenlose Betriebssystem Upgrade so, dass beide sind installiert und es behebt alles, was Sie bereits auf Ruby1.8 ausgeführt haben – simbo1905

Verwandte Themen