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

9

Così sono entrato di recente nel mondo Mac e ho comprato un MacBook - che adoro, tra l'altro.

Sto avendo qualche problema a far funzionare correttamente tutti i miei strumenti di sviluppo e non conosco abbastanza bene le differenze nella CLI di Linux e nella CLI OSX.

In questo momento, sto provando a installare alcune versioni differenti di Ruby tramite RVM.

Ho provato a ottenere gcc4.2 come ho visto, ma a prescindere dal compilatore che utilizzo ottengo 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

Qualcuno potrebbe indicarmi la giusta direzione? Mi sento come se mi mancasse qualcosa di ovvio.

Grazie in anticipo.

    
posta brennebeck 12.12.2012 - 16:13
fonte

2 risposte

2

Risolti reinstallando 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 head mi ha dato il seguente:

  * 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 ho appena eseguito:

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

    
risposta data 24.12.2012 - 03:25
fonte
0

Ho avuto problemi simili e ho 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 fosse il problema principale perché openssl non era in grado di eseguire ./Configure e Make.

Controlla se questi sono installati per primi e forse sarà d'aiuto 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.

    
risposta data 17.03.2013 - 08:12
fonte

Leggi altre domande sui tag