Problemi di installazione delle versioni di Ruby tramite RVM in Mountain Lion


9

Quindi di recente mi sono unito al mondo Mac e ho comprato un MacBook - che adoro, comunque.

Ho qualche problema a configurare correttamente tutti i miei strumenti di sviluppo e non conosco al 100% le differenze nella CLI di Linux e nella CLI di OSX.

In questo momento, sto cercando di installare alcune versioni diverse di Ruby tramite RVM.

Ho provato a ottenere gcc4.2 come ho visto consigliato, ma indipendentemente dal compilatore che uso ricevo messaggi simili. In questo sto cercando di installare 2.0.0-preview2, ma ottengo gli stessi messaggi anche per altre versioni:

$ rvm install 2.0.0-preview2
No binary rubies available for: downloads/ruby-2.0.0-preview2.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Fetching openssl-1.0.1c.tar.gz to /usr/local/rvm/archives
Extracting openssl to /usr/local/rvm/src/openssl-1.0.1c
Configuring openssl in /usr/local/rvm/src/openssl-1.0.1c.
Error running 'env LDFLAGS=-L/opt/sm/pkg/active/lib CFLAGS=-I/opt/sm/pkg/active/include CPATH=/opt/sm/pkg/active/include ./Configure darwin64-x86_64-cc -I/usr/local/rvm/usr/include -L/usr/local/rvm/usr/lib zlib no-asm no-krb5 shared --prefix=/usr/local/rvm/usr --with-opt-dir=/usr/local/rvm/usr', please read /usr/local/rvm/log/ruby-2.0.0-preview2/openssl/configure.log
Compiling openssl in /usr/local/rvm/src/openssl-1.0.1c.
Error running 'make', please read /usr/local/rvm/log/ruby-2.0.0-preview2/openssl/make.log
Updating openssl certificates
Error running 'update_openssl_certs', please read /usr/local/rvm/log/ruby-2.0.0-preview2/openssl.certs.log
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.0.0-preview2, this may take a while depending on your cpu(s)...
ruby-2.0.0-preview2 - #downloading ruby-2.0.0-preview2, this may take a while depending on your connection...
ruby-2.0.0-preview2 - #extracted to /usr/local/rvm/src/ruby-2.0.0-preview2 (already extracted)
ruby-2.0.0-preview2 - #configuring
Error running 'env LDFLAGS=-L/opt/sm/pkg/active/lib CFLAGS=-I/opt/sm/pkg/active/include CPATH=/opt/sm/pkg/active/include ./configure --enable-shared --disable-install-doc --prefix=/usr/local/rvm/rubies/ruby-2.0.0-preview2 --with-opt-dir=/usr/local/rvm/usr:/usr/local/rvm/usr', please read /usr/local/rvm/log/ruby-2.0.0-preview2/configure.log
There has been an error while running configure. Halting the installation.

Ecco l'output dei quattro file di registro menzionati:

/usr/local/rvm/log/ruby-2.0.0-preview2/openssl/configure.log:

[2012-12-12 22:49:21] env LDFLAGS=-L/opt/sm/pkg/active/lib CFLAGS=-I/opt/sm/pkg/active/include CPATH=/opt/sm/pkg/active/include ./Configure darwin64-x86_64-cc -I/usr/local/rvm/usr/include -L/usr/local/rvm/usr/lib zlib no-asm no-krb5 shared --prefix=/usr/local/rvm/usr --with-opt-dir=/usr/local/rvm/usr
Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]

/usr/local/rvm/log/ruby-2.0.0-preview2/openssl/make.log:

[2012-12-12 22:49:21] make
making all in crypto...
making all in crypto/objects...
/usr/bin/perl obj_dat.pl obj_mac.h obj_dat.h
/usr/bin/perl objxref.pl obj_mac.num obj_xref.txt > obj_xref.h
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -O   -c -o obj_dat.o obj_dat.c
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -O   -c -o obj_xref.o obj_xref.c
ar  r ../../libcrypto.a o_names.o obj_dat.o obj_lib.o obj_err.o obj_xref.o
/usr/bin/ranlib: file: ../../libcrypto.a(ebcdic.o) has no symbols
/usr/bin/ranlib: file: ../../libcrypto.a(fips_ers.o) has no symbols
/usr/bin/ranlib ../../libcrypto.a || echo Never mind.
/usr/bin/ranlib: file: ../../libcrypto.a(ebcdic.o) has no symbols
/usr/bin/ranlib: file: ../../libcrypto.a(fips_ers.o) has no symbols
making all in crypto/md4...
make[2]: Nothing to be done for `all'.
making all in crypto/md5...
make[2]: Nothing to be done for `all'.
making all in crypto/sha...
make[2]: Nothing to be done for `all'.
making all in crypto/mdc2...
make[2]: Nothing to be done for `all'.
making all in crypto/hmac...
make[2]: Nothing to be done for `all'.
making all in crypto/ripemd...
make[2]: Nothing to be done for `all'.
making all in crypto/whrlpool...
make[2]: Nothing to be done for `all'.
making all in crypto/des...
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -O   -c -o set_key.o set_key.c
set_key.c:399:17: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'unsigned int'
                *(k++)=ROTATE(t2,30)&0xffffffffL;
                       ~~~~~~~^~~~~~
./des_locl.h:170:19: note: expanded from macro 'ROTATE'
                                        : "I"(n),"0"(a) \
                                                     ^
set_key.c:402:17: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'unsigned int'
                *(k++)=ROTATE(t2,26)&0xffffffffL;
                       ~~~~~~~^~~~~~
./des_locl.h:170:19: note: expanded from macro 'ROTATE'
                                        : "I"(n),"0"(a) \
                                                     ^
2 errors generated.
make[2]: *** [set_key.o] Error 1
make[1]: *** [subdirs] Error 1
make: *** [build_crypto] Error 1

/usr/local/rvm/log/ruby-2.0.0-preview2/openssl.certs.log:

[2012-12-12 22:49:24] update_openssl_certs
-bash: cd: /usr/local/rvm/usr/ssl: No such file or directory

/usr/local/rvm/log/ruby-2.0.0-preview2/configure.log:

[2012-12-12 22:49:24] env LDFLAGS=-L/opt/sm/pkg/active/lib CFLAGS=-I/opt/sm/pkg/active/include CPATH=/opt/sm/pkg/active/include ./configure --enable-shared --disable-install-doc --prefix=/usr/local/rvm/rubies/ruby-2.0.0-preview2 --with-opt-dir=/usr/local/rvm/usr:/usr/local/rvm/usr
checking build system type... x86_64-apple-darwin12.2.1
checking host system type... x86_64-apple-darwin12.2.1
checking target system type... x86_64-apple-darwin12.2.1
checking whether the C compiler works... no
configure: error: in `/usr/local/rvm/src/ruby-2.0.0-preview2':
configure: error: C compiler cannot create executables
See `config.log' for more details

OpenSSL è stato installato tramite homebrew:

$ brew info openssl
openssl: stable 1.0.1c
http://openssl.org

This formula is keg-only.
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

The OpenSSL provided by OS X is too old for some software.

/usr/local/Cellar/openssl/1.0.1c (429 files, 15M)
https://github.com/mxcl/homebrew/commits/master/Library/Formula/openssl.rb

Potrebbe qualcuno indicarmi la giusta direzione? Sento che mi manca qualcosa di ovvio.

Grazie in anticipo.


Anche se non posso aiutarti con l'attuale domanda, vorrei formulare una raccomandazione: riformula la tua domanda per avere una breve sinossi nelle prime righe , e poi vai nei dettagli. Inoltre, potrebbe essere più semplice ottenere risposte se si suddivide il problema in diverse domande. In bocca al lupo!
myhd

Risposte:


2

Risolto con la reinstallazione di Xcode, strumenti CLI, openssl (brew), autoconf (brew), automake (brew) e apple-gcc42 (brew). Dopo la reinstallazione ho eseguito rvm get head(grazie a @mpapis in #rvm su freenode). rvm get headmi ha dato quanto segue:

  * WARNING: you have 'rvm_configure_env' in /etc/rvmrc, run the following to fix:

      sudo sed -i'' -e "s#rvm_configure_env=('LDFLAGS=-L/opt/sm/pkg/active/lib CFLAGS=-I/opt/sm/pkg/active/include CPATH=/opt/sm/pkg/active/include')#rvm_configure_env=('LDFLAGS=-L/opt/sm/pkg/active/lib' 'CFLAGS=-I/opt/sm/pkg/active/include' 'CPATH=/opt/sm/pkg/active/include')#" /etc/rvmrc

  * No new notes to display.

# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Upgrade of RVM in /usr/local/rvm/ is complete.

# hinmn,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and
#   more enjoyable!!!
#
# ~Wayne

RVM reloaded!

Dopo di che ho appena corso:

sudo sed -i'' -e "s#rvm_configure_env=('LDFLAGS=-L/opt/sm/pkg/active/lib CFLAGS=-I/opt/sm/pkg/active/include CPATH=/opt/sm/pkg/active/include')#rvm_configure_env=('LDFLAGS=-L/opt/sm/pkg/active/lib' 'CFLAGS=-I/opt/sm/pkg/active/include' 'CPATH=/opt/sm/pkg/active/include')#" /etc/rvmrc

E tutto ha funzionato :)


Nota ulteriore: ho la sensazione che se avessi eseguito rvm get headprima, avrei potuto evitare di installare / reinstallare alcuni dei pacchetti.
brennebeck,

Concordo - semplicemente facendo rvm get headseguito da brew updatee brew install ...(un mucchio di pacchetti mancanti) ha fatto il trucco per me.
Thilo

Sì, non ho avuto problemi da quando tutto ha funzionato. Tuttavia, per un po 'mi sono davvero trovato in difficoltà. rvm su Linux "funziona" nella mia esperienza.
Brennebeck,

0

Ho avuto problemi simili e si è scoperto che non avevo installato alcuni pacchetti, principalmente questi:

libxslt @1.1.27_0 (active)
libyaml @0.1.4_1 (active)
llvm-3.2 @3.2_1 (active)
llvm_select @0.2_0 (active)

llvm-3.2 è il compilatore gcc che credo sia stato il problema principale perché openssl non è stato in grado di funzionare ./Configure and Make.

Controlla se questi sono installati prima e forse ti aiuterà prima di dover reinstallare tutto. Mi ci sono voluti 2 giorni per far funzionare Ruby 2.0.0 / Rails 3.1.1, spero che questo aiuti qualcuno.


Ho pensato che Homebrew avrebbe installato automaticamente tutti i pacchetti richiesti
user151019
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.