2013-11-04 7 views
13
rvm install 1.9.3 

conduce all'errore nel make.log:Come compilare ruby ​​con RVM su un sistema di memoria bassa?

... 
compiling ./enc/trans/emoji_sjis_docomo.c 
compiling ./enc/trans/emoji_sjis_kddi.c 
gcc: internal compiler error: Killed (program cc1) 
gcc: internal compiler error: Killed (program cc1) 
gcc: internal compiler error: Killed (program cc1) 
Please submit a full bug report, 
with preprocessed source if appropriate. 
... 

dmesg mostra

[180031.341709] send sigkill to 3705 (cc1), adj 0, size 3394 

free spettacoli ad un certo processo in esecuzione di configurazione punto:

   total  used  free  shared buffers  cached 
Mem:  241668  238676  2992   0   92  2020 
-/+ buffers/cache:  236564  5104 
Swap:  262140  262140   0 

Quindi presumo che 256 MB di RAM e 256 MB di Swap non sono disponibili gh per compilare Ruby su di esso.

ho letto che dovrebbe essere possibile utilizzando alcuni parametri per gcc, vedi: http://hostingfu.com/article/compiling-with-gcc-on-low-memory-vps

Ma

rvm install 1.9.3 --with-CFLAGS="$CFLAGS --param ggc-min-expand=0 --param ggc-min-heapsize=8192" 

non funziona per dare le bandiere al gcc, Log è sempre la stessa per la flags:

command(2): __rvm_make -j4 
     CC = gcc 
     LD = ld 
     LDSHARED = gcc -shared 
     CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-fiel$ 
     XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT 
     CPPFLAGS = -I. -I.ext/include/x86_64-linux -I./include -I. 
     DLDFLAGS = -Wl,-soname,libruby.so.1.9 
     SOLIBS = -lpthread -lrt -ldl -lcrypt -lm 

Come compilare rubino su quella macchina?

+1

try 'rvm install 1.9.3 - CFLAGS =" $ CFLAGS --param ggc-min-expand = 0 --param ggc-min-heapsize = 8192 "' – mpapis

+0

'[205242.284757] invia sigkill a 17549 (cc1), adj 0, dimensione 11726' pure. Ora il make.log ha questi CFLAG: 'CFLAGS = --param ggc-min-expand = 0 --param ggc-min-heapsize = 8192 -fPIC' Ci sono alcuni flag mancanti che vengono mostrati inizialmente/sopra. make.log continua con: '.. configurazione -test-/funcall configurazione -test-/carico/dot.dot gcc: errore di compilatore interno: Ucciso (Programma cc1) gcc: errore di compilatore interno: Killed (programma cc1) Si prega di inviare una segnalazione di bug completa, con sorgente preelaborata, se appropriato. .. ' e termina con ' configurazione zlib' – marc

+0

variabile CFLAG esportato, ora è 'echo $ CFLAGS': ' CFLAGS = --param GGC-min-expand = 0 --param GGC-MIN heapsize = 8192 -fPIC'. 'rvm reinstallare 1.9.3' porta a make.log' CFLAGS = --param ggc-min-expand = 0 --param ggc-min-heapsize = 8192 -fPIC' e stessa uscita di memoria esaurita. – marc

risposta

27

La creazione di un file di scambio da 512 MB ha risolto il problema. Ecco i passaggi:

sudo mkdir -p /var/cache/swap/ 
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512 
sudo chmod 0600 /var/cache/swap/swap0 
sudo mkswap /var/cache/swap/swap0 
sudo swapon /var/cache/swap/swap0 

Il file di scambio non viene utilizzato dopo un riavvio. Può essere integrato in /etc/fstab usarlo dopo il riavvio:

/var/cache/swap/swap0 none swap sw  0 0 

I passaggi di cui sopra per creare un file di scambio che ho trovato qui (in tedesco): http://wiki.ubuntuusers.de/Swap#Swap-als-Datei - licenza per il contenuto di cui sopra: http://creativecommons.org/licenses/by-nc-sa/2.0/de/deed.en (Attribuzione-NonCommercial- ShareAlike 2.0 Germania (CC BY-NC-SA 2.0 DE))

Problemi correlati