Question

I'm trying to install Ruby 1.9.3 using rvm. However, when I type:

rvm install 1.9.3

I get the following error:

ERROR: Error running 'make ', please read /Users/nick/.rvm/log/ruby-1.9.3-rc1/make.log
ERROR: There has been an error while running make. Halting the installation.

I'm running Mac OS X Lion and my current version of Ruby is 1.9.2.

Edit: make.log:

make[1]: Entering directory `/Users/nick/.rvm/src/ruby-1.9.3/ext/readline'
/usr/bin/gcc-4.2 -I. -I../../.ext/include/x86_64-darwin11.0.0 -I../.././include -I../.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\" -I/Users/nick/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -o readline.o -c readline.c
readline.c: In function ‘username_completion_proc_call’:
readline.c:1386: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:1386: error: (Each undeclared identifier is reported only once
readline.c:1386: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make[1]: Leaving directory `/Users/nick/.rvm/src/ruby-1.9.3/ext/readline'
make: *** [mkmain.sh] Error 1
Was it helpful?

Solution

This is an issue with readline. Try compiling readline yourself from source:

curl -O ftp://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz
tar xzvf readline-6.1.tar.gz
cd readline-6.1
./configure --prefix=/usr/local
make
sudo make install

Source

OTHER TIPS

The simpler, more general solution is to explicitly install the offending package and then reinstall with that package. In my case, it was aborting on openssl_missing, so:

rvm pkg install openssl
rvm install 1.9.3 -C "--with-openssl-dir=$HOME/.rvm/usr"

For your case, it's probably:

rvm pkg install readline
rvm install 1.9.3 -C "--with-readline-dir=$HOME/.rvm/usr"

This of course assumes that you installed rvm as yourself. Change accordingly...

I have been running into issues on 1.9.3 on Snow Leopard, too. My make.log looks like this:

[2011-11-06 16:22:52] make 
CC = /usr/bin/gcc-4.2
LD = ld
LDSHARED = /usr/bin/gcc-4.2 -dynamiclib
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  -fno-common -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/x86_64-darwin10.8.0 -I./include -I.
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -install_name /Users/strike/.rvm/rubies/ruby-1.9.3-p0/lib/libruby.1.9.1.dylib -current_version 1.9.1 -compatibility_version 1.9.1 -Wl,-unexported_symbol,_Init_* -Wl,-unexported_symbol,*_threadptr_*  -Wl,-u,_objc_msgSend   
SOLIBS = 
compiling dmyencoding.c
compiling array.c
compiling bignum.c
compiling dir.c
compiling enum.c
compiling load.c
compiling file.c
compiling gc.c
gc.c: In function ‘initial_expand_heap’:
gc.c:1112: warning: implicit conversion shortens 64-bit value into a 32-bit value
compiling hash.c
compiling io.c
compiling marshal.c
compiling numeric.c
compiling object.c
compiling parse.c
compiling process.c
compiling re.c
compiling ruby.c
compiling util.c
compiling variable.c
compiling debug.c
linking miniruby
rbconfig.rb unchanged
generating enc.mk
compiling encoding.c
generating prelude.c
compiling prelude.c
linking static-library libruby.1.9.1-static.a
linking shared-library libruby.1.9.1.dylib
generating encdb.h
encdb.h unchanged
making enc
make[1]: Nothing to be done for `enc'.
making srcs under enc
make[1]: Nothing to be done for `srcs'.
generating transdb.h
transdb.h unchanged
making trans
make[1]: Nothing to be done for `./enc/trans'.
making encs
file2lastrev.rb: does not seem to be under a vcs: .
make: [.revision.time] Error 1 (ignored)
./revision.h unchanged
/bin/sh: line 0: cd: ext/-test-/add_suffix: No such file or directory
make[1]: *** [ext/-test-/add_suffix/all] Error 1
make: *** [build-ext] Error 2

Which version of Xcode are you using - 4.1 or 4.2? There are some issues with 4.2 and Ruby because 4.2 uses LLVM instead of GCC as the main compiler. Some of the information here may help you if you have 4.2. If you have 4.2 but don't mind going back to 4.1 it's possible to download 4.1 from Apple still on their developer's page but it's rather buried.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top