2011-03-05 60 views
5

我想在不同的项目之间切换,其中一部分通过rvm更改红宝石和宝石集。 RVM本身对我的作品很大,但是当我把调用它变成一个shell脚本,我得到:fork:从shell脚本调用rvm时资源暂时不可用,但rvm本身很好地工作

fork: Resource temporarily unavailable

下面是从RVM信息输出。让我知道,如果有任何其他信息,我可以给这将是有益的。

$ rvm info 

[email protected]: 

    system: 
    uname:  "Darwin savoy.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386" 
    bash:  "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)" 
    zsh:   "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)" 

    rvm: 
    version:  "rvm 1.0.9 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]" 

    ruby: 
    interpreter: "ruby" 
    version:  "1.9.2p136" 
    date:   "2010-12-25" 
    platform:  "x86_64-darwin10.6.0" 
    patchlevel: "2010-12-25 revision 30365" 
    full_version: "ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]" 

    homes: 
    gem:   "/Users/rfzabick/.rvm/gems/[email protected]" 
    ruby:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136" 

    binaries: 
    ruby:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin/ruby" 
    irb:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin/irb" 
    gem:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin/gem" 
    rake:   "/Users/rfzabick/.rvm/gems/[email protected]/bin/rake" 

    environment: 
    PATH:   "/Users/rfzabick/.rvm/gems/[email protected]/bin:/Users/rfzabick/.rvm/gems/[email protected]/bin:/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin:/Users/rfzabick/.rvm/bin:/usr/local/bin:/Applications/Emacs.app/Contents/MacOS:/Applications/MacVim.app/Contents/MacOS:/usr/local/mysql/bin:/Developer/usr/bin:/Users/rfzabick/.ec2/ec2-api-tools-1.3-62308/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/Applications/Google Chrome.app/Contents/MacOS" 
    GEM_HOME:  "/Users/rfzabick/.rvm/gems/[email protected]" 
    GEM_PATH:  "/Users/rfzabick/.rvm/gems/[email protected]:/Users/rfzabick/.rvm/gems/[email protected]" 
    BUNDLE_PATH: "/Users/rfzabick/.rvm/gems/[email protected]" 
    MY_RUBY_HOME: "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136" 
    IRBRC:  "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/.irbrc" 
    RUBYOPT:  "" 
    gemset:  "pax-arachnae" 

回答

2

我在shell脚本中使用RVM,它工作正常。有一件事可以解释为什么你无法做到,你的版本是旧的。目前的版本是1.2.8,而你的版本是1.0.9。

RVM经常更新,所以最好每两周更新一次。在当前的RVM中,我们使用rvm get head进行更新,但我不确定它在1.0.9中是否相同。如果不尝试rvm help update

+0

该诀窍。谢谢。 – 2011-03-05 21:42:24

+0

很高兴帮助。我认为这是一个很棒的工具。 – 2011-03-06 00:09:27

+0

圣牛,是否永远。 RVM岩石。 – 2011-03-06 04:29:24

1

只是有一个问题,并解决它在Red Hat 5收到错误:叉:资源暂时不可用

研究,我们也发现了这一点: 1. cron运行的脚本不完全登录的用户。因此,如果在/ etc/profile中发出ulimit命令,那么在cron脚本运行时它们将不会运行。

  1. 在与具有多个数据库的计算机上处​​理用户oracle时,我们发现ulimit -u导致该问题。我们有800个Oracle进程运行(演出用ps -ef | grep的甲骨文| WC-1),但是是bash shell会工作正常用ulimit -u 2020,但会失败的ulimit -u 2010

原来过程限制必须是不恰当的。还必须包含线程。这个命令显示了一个更接近我们的ulimit -u所需经验的数字:ps -eLf | grep oracle | egrep -v root | wc -l

所以底线是,确保你的ulimit -u设置为高在处理诸如oracle的工作负载时足够了。

1

我也有同样的错误,但对我来说,我的rvm已经搞乱了,并且使用了ruby 1.8.7而不是1.9.3。我做了rvm的要求,并警告过我。重新回到1.9.3,这一切都开始工作了。

1

我在OSX 10.7上遇到了与系统红宝石1.8.7相同的问题。我使用RVM,所以只需切换到不同的红宝石1.9.2-P290解决了这个问题。 (我在任何项目中都不使用1.8.7)。

2

fork: Resource temporarily unavailable

该错误是由通过的ulimit设置当前壳资源限制引起的(由ulimit -a检查)。因此,您可以在另一个shell中尝试,或者使用ulimit命令来增加资源,该命令控制shell可用的资源并在操作系统上创建它的进程。

要增加的限制,试着运行:

ulimit -Sn unlimited && ulimit -Sl unlimited 

提高软限制到硬之一,或:

ulimit -l unlimited 
ulimit -n 10240 

的过程中设置的最大大小无限制,最大数量打开文件到10240。

参见:help ulimit了解更多信息。

为了提高工艺的限制,使用这个命令:

sudo launchctl limit maxproc 1024 2048 

参见:How to persist ulimit settings in OSX?