2015-07-25 2 views
0

Эй, я просто обновляю ruby ​​на сервере Linux, в котором я ssh. Я знаю, что в нем много потоков, но большинство из них предназначены для установки на mac osx (с которым у меня нет проблемы). Это журнал ошибок, то будет выводиться:ошибка установки ruby ​​1.9.3 на сервере linux

$ rvm install 1.9.3 
ruby-1.9.3-p551 - #removing src/ruby-1.9.3-p551.. 
Searching for binary rubies, this might take some time. 
No binary rubies available for: unknown/libc-2.12/x86_64/ruby-1.9.3-p551. 
Continuing with compilation. Please read 'rvm help mount' to get more 
information on binary rubies. 
Checking requirements for unknown. 
Install: 
press any key to continue 
Install: build-essential libreadline zlib1g libyaml libc6 libgdbm ncurses 
press any key to continue 
Requirements installation successful. 
Installing Ruby from source to: /home/swampu6/.rvm/rubies/ruby-1.9.3-p551, this may take a while depending on your cpu(s)... 
ruby-1.9.3-p551 - #downloading ruby-1.9.3-p551, this may take a while depending on your connection... 
ruby-1.9.3-p551 - #extracting ruby-1.9.3-p551 to /home/swampu6/.rvm/src/ruby-1.9.3-p551.... 
ruby-1.9.3-p551 - #applying patch /home/swampu6/.rvm/patches/ruby/GH-488.patch. 
ruby-1.9.3-p551 - #applying patch /home/swampu6/.rvm/patches/ruby/1.9.3/CVE-2015-1855-p484.patch. 
ruby-1.9.3-p551 - #configuring............................................. 
ruby-1.9.3-p551 - #post-configuration.. 
ruby-1.9.3-p551 - #compiling... 
Error running '__rvm_make -j48', 
showing last 15 lines of /home/swampu6/.rvm/log/1437856022_ruby-1.9.3-p551/make.log 
    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 
compiling main.c 
compiling dmydln.c 
compiling dmyencoding.c 
compiling version.c 
compiling miniprelude.c 
compiling array.c 
compiling bignum.c 
make: vfork: Resource temporarily unavailable 
make: vfork: Resource temporarily unavailable 
compiling dmyversion.c 
++ return 2 
There has been an error while running make. Halting the installation. 

это содержание make.log по просьбе комментатора в:

[2015-07-25 16:27:22] __rvm_make 
__rvm_make() 
{ 
    \make "[email protected]" || return $? 
} 
current path: /home/swampu6/.rvm/src/ruby-1.9.3-p551 
PATH=/usr/kerberos/bin:/home/swampu6/perl5/bin:/usr/lib/courier-imap/bin:/usr/local/bin:/bin:/usr/bin:/opt/dell/srvadmin/bin:/home/swampu6/.rvm/bin:/home/swampu6/bin:/home/swampu6/.rvm/bin 
command(2): __rvm_make -j48 
++ make -j48 
    CC = gcc 
    LD = ld 
    LDSHARED = gcc -shared 
    CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC 
    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 
compiling main.c 
compiling dmydln.c 
compiling dmyencoding.c 
compiling version.c 
compiling miniprelude.c 
compiling array.c 
compiling bignum.c 
make: vfork: Resource temporarily unavailable 
make: vfork: Resource temporarily unavailable 
compiling dmyversion.c 
++ return 2 
+0

какая версия rvm вы используете? – adamliesko

+0

i'm running rvm 1.26.11 – tellmewhy

+0

Сообщение об ошибке «vfork: Resource временно недоступно» указывает на то, что во время компиляции на вашем компьютере не хватает ресурсов. Возможно, ваша машина недостаточно мощна для компиляции Ruby, но это кажется маловероятным. Можете ли вы загрузить остальные /home/swampu6/.rvm/log/1437856022_ruby-1.9.3-p551/make.log где-нибудь (т. Е. Суть), чтобы мы могли его просмотреть? –

ответ

0

Я думаю, ваша проблема в том, что, так как РВМ пытается скомпилировать рубин с командой __rvm_make -j48 (которая сообщает компилятору попытаться распараллелить компиляцию на 48 разных заданиях), ваша хост-система для этого не работает. Перед тем, как добраться до возможного решения, вот некоторые мысли на высоком уровне:

  1. Производственные системы, как правило, не должны компилировать свои собственные версии Ruby. Вместо этого отправляйте скомпилированные двоичные файлы на узел (например, как пакет Debian) и даже не устанавливайте RVM.

  2. rvm делает много волшебства, чтобы попытаться скрыть детали того, что он делает от конечного пользователя, но по моему опыту это больше проблем, чем того стоит. Используйте chruby или rbenv и создайте Ruby только тогда, когда вам нужно.

Во всяком случае, для текущего вопроса, я думаю, вам лучше всего, чтобы попытаться переопределить -j флаг на меньшее значение. Есть несколько способов, но сначала попробуйте это:

rvm install 1.9.3 -j 1    # from http://cheat.errtheblog.com/s/rvm 

Если это не поможет, проверьте, что -j аргумент в __rvm_make -j 48 фактически изменяется на 1 в журнале. Если да, попробуйте меньшее число. Если это не так, попробуйте это:

MAKEFLAGS=-j1 rvm install ruby-1.9.3 # from https://twitter.com/avdi/status/130720270733410305 

Надеюсь, одна из этих работ!

+0

это сработало! большое спасибо. – tellmewhy

Смежные вопросы