2013-06-14 17 views
6

OS X 10.9 viene fornito con ruby ​​2.0.0p195, ma ho bisogno di installare Ruby 1.8.7. Continuo a incontrare errori. Ho installato Xcode5-DP e credo che sia installato anche Command Line Tools.Errore durante il downgrade di Ruby su OS X Mavericks

Nel terminale:

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 dice:

./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 

Altro (utile) informazioni:

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. 

Grazie per il vostro aiuto.

+0

aprire un problema per RVM: https://github.com/wayneeseguin/rvm/issues – mpapis

risposta

13

10,9 è uno dei primi beta build del sistema operativo. [Modifica: si prega di notare la data di luglio 2013 di questa risposta] Se fossi in esecuzione 10.9, suppongo che dovrò reinstallare il sistema operativo da zero almeno altre 2 volte. (Almeno una volta durante il ciclo beta perché, beh, è ​​beta, e una volta quando 10.9 esce in versione generale, perché, beh, beta).

Dato questo suggerisco quattro linee d'azione (pick 1 o più):

  • lavoro con i ragazzi RVM e scavare nell'ambiente compilatore probabilmente cambiato-10.9 e di ottenere di Ruby 1.8.7 compilazione. Questo è più complicato perché tecnicamente questa roba è sotto NDA.
  • Invece, configura una VM ed esegui Ruby 1.8.7 sulla VM. Punti bonus per l'utilizzo di Vagrant e Chef/Marionetta, perché potrebbe essere necessario ricostruire la VM. (Tieni semplicemente i file di configurazione di Vagrantfile e Puppet o Chef su Github/Dropbox/qualunque sia così puoi clonarli e rigenerare la tua VM da zero.)
  • OPPURE semplicemente riavvia a 10.8 per ottenere il lavoro di produzione. 10.8 è un OS a livello di produzione, 10.9 dovrebbe essere trattato con cautela - potrebbe mangiare il tuo lavoro. In realtà non dovrebbe essere usato per scopi di produzione (aka: giorno per giorno scrivendo codice Ruby). Se stai scrivendo una sola app 10.9 in Cocoa/Objective-C (o aggiornando RubyMotion o qualcosa del genere) potrebbe essere un'altra cosa (ma manterrei comunque dei buoni backup e li tratteremo delicatamente).
  • Lavora per aggiornare il tuo codice base per Ruby 2.0, poiché Ruby 1.8.7 non è più supportato ufficialmente.

Edit (24 ottobre 2013): Se siete qui perché avete appena installato Mavericks (uscito 22 Ottobre 2013), vuole ottenere di Ruby 1.8.7 lavoro pochi giorni dopo questa release, e RVM non funziona per voi (perché siete impazienti e non può aspettare), ecco cosa si può fare (che dovrebbe funzionare, anche se non sono un utente rbenv):

  1. Utilizzare macports da installare port install ruby. Questo è Ruby 1.8.7. Questa compilation ha funzionato per me sulla mia macchina Mavericks (sebbene sia necessario installare Macports dal sorgente al momento della scrittura, e installare gli strumenti di sviluppo della riga di comando, anche se XCode 5 è installato.
  2. Ora installare rbenv.
  3. Symlink /opt/local/bin/ruby1.8 nella cartella ~/.rbenv/versions/.Specificamente ~/.rbenv/versions/ruby-1.8.7-p374
  4. Leggi la documentazione di rbenv, ma dovrebbe funzionare ora! (Almeno dalla documentazione. Anche in questo caso, non è un utente rbenv, ma giocare uno in TV)

Sono sicuro che si può fare questo con homebrew troppo, ma so di Ruby 1.8.7 installato correttamente con il ultimi Macport, perché è quello che uso (e mi è appena stato installato per me).

+1

se fosse possibile Vorrei fare +1 su ogni punto della risposta;) – mpapis

+0

Grazie a un gruppo .. Ho inviato un problema ai ragazzi RVM. In realtà non funziona neanche per Ruby 1.9.3 e non sono sicuro di poter aggiornare a Ruby 2.0 così facilmente .. Per ora ridurrò OSx e giocherò con esso su un secondo computer .. – Alextoul

+1

Invece di rvm, prova rbenv, che è preferito dai ragazzi di GitHub e richiesto dal loro [set di strumenti di Boxen] (http://boxen.github.com), con cui rvm è incompatibile. Di recente sono passato da rvm a rbenv, in parte a causa di questo, e sembra funzionare almeno altrettanto bene (anche se in modo leggermente diverso). Non l'ho ancora provato su Mavericks, quindi non ho idea se funzionerà in questo caso, ma vale la pena provare. Dai uno sguardo a questi articoli: http://www.overacker.me/blog/2013/07/10/getting-started-with-rbenv/ & http://edapx.com/2013/05/23/switching- da-rvm-to-rbenv/ –

0

provare a passare il compilatore

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

questo sta chiedendo problemi, 'rubino 1.8.7' non era compatibile con' clang' a tutti, in primo luogo tentativi di farlo funzionare sono stati fatti in 'ruby-1.9.3', ma solo' ruby-1.9.3-p194' funzionava correttamente (problemi minimi) e 'ruby-2.0.0' era il primo che funzionava meglio con 'clang' invece di' gcc-4.2' (GNU GCC) – mpapis

3

Prova questo (assicurare la toolchain dev è raggiungibile):

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

quindi riprovare.

10

Quando si vede questo messaggio di errore:

configure: error: compilatore C non può creare eseguibili:

Prima di tutto, assicuratevi di aver aggiornato gli strumenti a riga di comando:

$ xcode-select --install 

Ora Apple vuole che tu accetti la loro licenza prima di poter utilizzare questi strumenti:

$ 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. 
[...] 

Dopo averlo accettato, gli strumenti della riga di comando funzioneranno come previsto.

+0

Viene visualizzato l'errore: "Impossibile installare il software perché non è attualmente disponibile dal server di aggiornamento software." – nnyby

+0

@nnyby: sei sicuro che Xcode sia aggiornato? – konrad

+0

sì, ho Xcode 5.0.2. Ho risolto questo problema semplicemente scaricando gli strumenti dal centro di sviluppo di Apple. – nnyby

8

Se hai installato gli strumenti di sviluppo su OS X Mavericks Ruby 1.8 è già installato insieme a 2.0. Quindi tutto ciò che devi fare è cambiare il link simbolico "Corrente" per puntare alla directory 1.8.

#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

Questo ha funzionato per me, dopo aver provato TUTTO per due giorni. Grazie! – ssantos

+0

A proposito, se hai sempre bisogno di tornare alla 2.0, basta eliminare il collegamento simbolico e quindi creare un nuovo collegamento simbolico corrente sostituendo la parte /1.8 con /2.0 –

+0

questo funziona particolarmente bene se hai fatto l'aggiornamento os gratuito in modo tale che entrambi sono installati e corregge istantaneamente ciò che era già in esecuzione su Ruby1.8 – simbo1905

Problemi correlati