rubygem"参数列表太长"

com*_*ird 9 rubygems

我的问题是在运行一个使用Ruby密集的进程期间或之后,当我使用任何gem命令包括gem --version或gem install rake时,它会挂起一分钟然后给我这个错误:

$ gem list
/Users/username/.rvm/bin/gem: line 5: /Users/username/.rvm/bin/gem: Argument list too long
/Users/username/.rvm/bin/gem: line 5: /Users/username/.rvm/bin/gem: Unknown error: 0
Run Code Online (Sandbox Code Playgroud)

文件位于:第5行:/Users/username/.rvm/bin/gem

#!/usr/bin/env bash

if [[ -s "/Users/username/.rvm/environments/ruby-1.8.7-p334" ]] ; then
  source "/Users/username/.rvm/environments/ruby-1.8.7-p334"
  exec gem "$@"                # this is line 5
else
  echo "ERROR: Missing RVM environment file: '/Users/username/.rvm/environments/ruby-    1.8.7-p334'" >&2
exit 1
fi
Run Code Online (Sandbox Code Playgroud)

我发现再次运行的唯一方法是重新启动计算机,这显然是不可取的.我使用的是OSX 10.6.5

我花了很长时间试图找到有这个问题的其他人,并且没有成功.你知道为什么会这样吗?

Jad*_*ade 37

这个问题是你设置rvm使用--default一个不存在的ruby版本.

您必须准确指定它,否则它将无法正常工作.

  • 这解决了这个问题,我在OS X 10.8.3之后我安装了Ruby 2.0.0 ...运行"RVM --default使用2.0.0"捆绑命令恢复正常后. (3认同)

mAr*_*5MB 7

通过电话解决它

rvm use 1.9.3
Run Code Online (Sandbox Code Playgroud)

不是

rvm use 1.9.3 --default
Run Code Online (Sandbox Code Playgroud)

现在一切都有效.


Spa*_*ken 4

看起来你正在递归地调用你的脚本......

你可以

  1. 重命名您的脚本

  2. 使用完整的 /usr/bin/gem 路径来引用 ruby​​gems

编辑:如果谁能告诉我为什么她的脚本被递归调用,就可以得到奖励积分和一块魔法饼干。仅供参考,正常情况下不应该发生;)

  • 看起来这是由于安装其他自动修改它们的工具而导致 .bash_brofile 和 .bashrc 中的循环。 (2认同)