Masalah menginstal versi Ruby melalui RVM di Mountain Lion


9

Jadi saya baru-baru ini bergabung dengan dunia Mac dan membeli MacBook - yang saya suka, omong-omong.

Saya mengalami beberapa masalah dalam menyiapkan semua perangkat dev saya dengan benar dan saya tidak cukup 100% terbiasa dengan perbedaan dalam Linux CLI dan OSX CLI.

Saat ini, saya mencoba menginstal beberapa versi Ruby yang berbeda melalui RVM.

Saya sudah mencoba mendapatkan gcc4.2 seperti yang saya lihat direkomendasikan, tetapi terlepas dari kompiler apa yang saya gunakan, saya mendapatkan pesan yang serupa. Dalam hal ini saya mencoba untuk menginstal 2.0.0-preview2, tetapi saya mendapatkan pesan yang sama untuk versi lain juga:

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

Berikut ini adalah output dari empat file log yang disebutkan:

/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 telah diinstal melalui 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

Bisakah seseorang mengarahkan saya ke arah yang benar? Saya merasa seperti kehilangan sesuatu yang jelas.

Terima kasih sebelumnya.


Meskipun saya tidak dapat membantu Anda dengan pertanyaan saat ini, saya ingin membuat rekomendasi: Buat ulang pertanyaan Anda untuk memiliki sinopsis singkat di baris pertama , dan kemudian masuk ke detail. Juga, mungkin lebih mudah untuk mendapatkan jawaban jika Anda memecah masalah Anda menjadi beberapa pertanyaan. Semoga berhasil!
myhd

Jawaban:


2

Dipecahkan dengan menginstal ulang Xcode, alat CLI, openssl (buatan), autoconf (buatan), automake (buatan) dan apple-gcc42 (buatan). Setelah menginstal ulang saya berlari rvm get head(terima kasih kepada @mpapis di #rvm di freenode). rvm get headmemberi saya yang berikut:

  * 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!

Setelah itu saya hanya berlari:

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

Dan semuanya berhasil :)


Catatan lebih lanjut: Saya merasa jika saya telah menjalankan rvm get headsebelumnya, saya mungkin telah menghindari menginstal / menginstal ulang beberapa paket.
brennebeck

Saya setuju - hanya melakukan rvm get headdiikuti oleh brew updatedan brew install ...(banyak paket yang hilang) melakukan trik untuk saya.
Thilo

Ya, saya tidak punya masalah sejak saya membuat semuanya berfungsi. Saya pasti mengalami kesulitan untuk sementara waktu. rvm di Linux 'berfungsi' dalam pengalaman saya.
brennebeck

0

Saya memiliki masalah yang sama dan ternyata saya tidak memiliki beberapa paket yang diinstal, terutama ini:

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 adalah kompiler gcc yang saya percaya adalah masalah utama karena openssl tidak dapat dijalankan ./Configure and Make.

Periksa apakah ini sudah diinstal terlebih dahulu dan mungkin itu akan membantu sebelum harus menginstal ulang semuanya. Butuh waktu 2 hari untuk membuat Ruby 2.0.0 / Rails 3.1.1 berfungsi, semoga ini membantu seseorang.


Saya pikir Homebrew akan secara otomatis menginstal semua paket yang diperlukan
user151019
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.