Fail to compile Ruby1.9 on VPS because of the RAM size.
Problem
You want to compile ruby1.9, but failed with errors:
gcc -I. -I.ext/include/i686-linux -I./include -I. -D_FILE_OFFSET_BITS=64 -DONIG_ENC_REGISTER=rb_enc_register -fPIC -O2 -g -Wall -Wno-parentheses -o enc/trans/gb18030.o -c ./enc/trans/gb18030.c virtual memory exhausted: Cannot allocate memory make[1]: *** [enc/trans/gb18030.o] Error 1 make[1]: Leaving directory `/home/roiadmin/tmp/ruby-1.9.1-p129' make: *** [trans] Error 2
You maybe tried changing ulimit values or add gcc-min-heapsize parameters, but all failed in vain.
Solution
The best way to do so is remove gb18030.c from compilation packages. Hope you are not planning to use Chinese GB18030 encoded-strings in Ruby.
The compile instructions are written in “enc.mk”. So all you need to do is delete all lines about gb18030 in “enc.mk”.
If you are compileing 1.9.1-p129, you can use this patch file.
*** enc.mk.org Wed Jun 17 21:36:49 2009 --- enc.mk Wed Jun 17 21:38:44 2009 *************** *** 79,85 **** enc/euc_kr.$(OBJEXT) \ enc/euc_tw.$(OBJEXT) \ enc/gb2312.$(OBJEXT) \ - enc/gb18030.$(OBJEXT) \ enc/gbk.$(OBJEXT) \ enc/iso_8859_1.$(OBJEXT) \ enc/iso_8859_2.$(OBJEXT) \ --- 79,84 ---- *************** *** 113,119 **** $(ENCSODIR)/euc_kr.$(DLEXT) \ $(ENCSODIR)/euc_tw.$(DLEXT) \ $(ENCSODIR)/gb2312.$(DLEXT) \ - $(ENCSODIR)/gb18030.$(DLEXT) \ $(ENCSODIR)/gbk.$(DLEXT) \ $(ENCSODIR)/iso_8859_1.$(DLEXT) \ $(ENCSODIR)/iso_8859_2.$(DLEXT) \ --- 112,117 ---- *************** *** 147,153 **** TRANSCSRCS = enc/trans/big5.c \ enc/trans/chinese.c \ enc/trans/escape.c \ - enc/trans/gb18030.c \ enc/trans/gbk.c \ enc/trans/iso2022.c \ enc/trans/japanese.c \ --- 145,150 ---- *************** *** 161,167 **** enc/trans/big5.$(OBJEXT) \ enc/trans/chinese.$(OBJEXT) \ enc/trans/escape.$(OBJEXT) \ - enc/trans/gb18030.$(OBJEXT) \ enc/trans/gbk.$(OBJEXT) \ enc/trans/iso2022.$(OBJEXT) \ enc/trans/japanese.$(OBJEXT) \ --- 158,163 ---- *************** *** 175,181 **** $(ENCSODIR)/trans/big5.$(DLEXT) \ $(ENCSODIR)/trans/chinese.$(DLEXT) \ $(ENCSODIR)/trans/escape.$(DLEXT) \ - $(ENCSODIR)/trans/gb18030.$(DLEXT) \ $(ENCSODIR)/trans/gbk.$(DLEXT) \ $(ENCSODIR)/trans/iso2022.$(DLEXT) \ $(ENCSODIR)/trans/japanese.$(DLEXT) \ --- 171,176 ---- *************** *** 267,276 **** @$(MAKEDIRS) "$(@D)" $(LDSHARED) -o $@ enc/gb2312.$(OBJEXT) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) - $(ENCSODIR)/gb18030.$(DLEXT): enc/gb18030.$(OBJEXT) - @$(MAKEDIRS) "$(@D)" - $(LDSHARED) -o $@ enc/gb18030.$(OBJEXT) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) - $(ENCSODIR)/gbk.$(DLEXT): enc/gbk.$(OBJEXT) @$(MAKEDIRS) "$(@D)" $(LDSHARED) -o $@ enc/gbk.$(OBJEXT) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) --- 262,267 ---- *************** *** 383,392 **** @$(MAKEDIRS) "$(@D)" $(LDSHARED) -o $@ enc/trans/escape.$(OBJEXT) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) - $(ENCSODIR)/trans/gb18030.$(DLEXT): enc/trans/gb18030.$(OBJEXT) - @$(MAKEDIRS) "$(@D)" - $(LDSHARED) -o $@ enc/trans/gb18030.$(OBJEXT) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) - $(ENCSODIR)/trans/gbk.$(DLEXT): enc/trans/gbk.$(OBJEXT) @$(MAKEDIRS) "$(@D)" $(LDSHARED) -o $@ enc/trans/gbk.$(OBJEXT) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) --- 374,379 ---- *************** *** 451,460 **** -@$(MAKEDIRS) "$(@D)" $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(encsrcdir)/gb2312.c - enc/gb18030.$(OBJEXT): $(encsrcdir)/gb18030.c - -@$(MAKEDIRS) "$(@D)" - $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(encsrcdir)/gb18030.c - enc/gbk.$(OBJEXT): $(encsrcdir)/gbk.c -@$(MAKEDIRS) "$(@D)" $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(encsrcdir)/gbk.c --- 438,443 ---- *************** *** 567,576 **** -@$(MAKEDIRS) "$(@D)" $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(encsrcdir)/trans/escape.c - enc/trans/gb18030.$(OBJEXT): $(encsrcdir)/trans/gb18030.c - -@$(MAKEDIRS) "$(@D)" - $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(encsrcdir)/trans/gb18030.c - enc/trans/gbk.$(OBJEXT): $(encsrcdir)/trans/gbk.c -@$(MAKEDIRS) "$(@D)" $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(encsrcdir)/trans/gbk.c --- 550,555 ----
Enjoy!
Tags: ruby