32bit Rubino compilazione fallisce su Lion
Domanda
Sto cercando di installare una build a 32 bit di Ruby su Lion in modo che io possa fare un certo lavoro con Oracle. Tuttavia non riesco a farlo costruire.
Con la 1.9.3-p0 questo è quanto ottengo:
linking miniruby
i686-apple-darwin11-gcc-4.2.1: i386: No such file or directory
make: *** [miniruby] Error 1
Le mie variabili di generazione sono i seguenti:
CC = /usr/bin/gcc-4.2
LD = ld
LDSHARED = /usr/bin/gcc-4.2 -dynamic -bundle
CFLAGS = -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration -arch i386 -pipe
XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I. -I.ext/include/i386-darwin11.2.0 -I./include -I.
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -arch i386
SOLIBS =
sto usando la seguente configurazione:
./configure --with-arch=i386 --prefix=/Users/fenris/.rbenv/versions/32-bit
Qualsiasi aiuto sarebbe apprezzato.
Soluzione
Utilizzando rvm me, ma provato sulla rbenv come bene e funzionato per me:
RBENV compilazione a 32 bit ruby-1.9.3-p0
!!! l'installazione di libyaml prima di fare questo potrebbe essere necessaria
Installazione libyaml
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar -xzf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure --prefix=$HOME/.rbenv/versions/ruby-1.9.3-p0_32bit
make
make install
installare Ruby
cd
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
tar -xzf ruby-1.9.3-p0.tar.gz
cd ruby-1.9.3-p0
autoconf
./configure --disable-pthread --with-opt-dir=$HOME/.rbenv/versions/ruby-1.9.3-p0_32bit --with-arch=i386 --prefix=$HOME/.rbenv/versions/ruby-1.9.3-p0_32bit
make
make install
RVM compilazione a 32 bit ruby-1.9.3-p0
export rvm_archflags='-arch i386'
export rvm_architectures='i386'
export rvm_configure_flags=--target=i686-apple-darwin11
rvm install ruby-1.9.3-p0 --32 --patch osx-arch-fix -n i386
...
Verificare che sia in esecuzione a 32 bit rubino
$ irb
['foo'].pack('p').size
// should return 8 on 64bit and 4 on 32bit.
Altri suggerimenti
Prova questo se si sta utilizzando RVM:
rvm_architectures="i386" CFLAGS=" -arch i386" LDFLAGS=" -arch i386" rvm install 1.9.3-p0
rvm install 1.9.3-p0 --with-gcc=clang
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow