rvm .rvmrc文件生成失败

3

几个月前,我使用rvm创建了一个rails3应用程序。一切都运行良好。

现在,我想创建另一个rails3应用程序。所以我完成了以下步骤:

$> rails new my_app

一切运行良好。接下来,我想将我的应用程序与rvm链接,所以我尝试了这个:

$> ruby -v
   ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
$> rvm install 1.9.3
$> rvm get head
$> rvm --rvmrc --create 1.9.3-p448@my_app (https://dev59.com/PGgu5IYBdhLWcg3ws5FC)

但是我遇到了以下错误:
mkdir: cannot create directory `/usr/local/rvm/gems/ruby-1.9.3-p448@bcayi': Permission denied

好的,权限被拒绝了,因此我试过:

$> rvmsudo --rvmrc --create 1.9.3-p448@my_app

我遇到了一个错误:
sudo: invalid option -- '-'

所以我的问题是:如何将rvm链接到我的Rails应用程序?

在使用Scientific Linux 6.4 (x86_64)和最新的RVM时,我也遇到了sudo无效选项错误。在我的情况下,结果是 - 只要我在“rvm”组中 - 我甚至不需要首先使用“rvmsudo”。 - 0xC0000022L
3个回答

1
因为您的RVM安装在系统中(/usr/local/rvm$HOME/.rvm不同),所以您需要加入rvm组(使用id检查)才能够使用rvm进行操作(例如在此情况下创建gemsets)。
要将自己添加到rvm组,请运行:
rvm group add rvm $USER

如果你加入了组但不起作用,可能需要重新启动控制台/电脑——有时,在将你添加到组后,OSX会在id中报告,但在重新启动计算机(或重新登录,但在OSX上是同一时间)之前,它将无效。

我已经在rvm组中了:$> rvmsudo rvm group add rvm $USER 告诉我:用户'jeremy'已经在组'rvm'中了 - Jérémy Pouyet
运行 id 命令会告诉你什么?如果它不在 rvm 组中 - 你是否重启了计算机? - mpapis
@mpapis:谢谢,虽然我的用户已经在rvm组中了,但是你的回答提供了上下文来理解我不需要使用rvmsudo来操作系统中的RVM实例,只要我在那个组中就可以了。还要感谢RVM! - 0xC0000022L

0

问题已解决!

由于rvmsudo --rvmrc --create 1.9.3-p448@my_app失败了,我手动创建了1.9.3-p448@my_app目录:

$> sudo mkdir /usr/local/rvm/gems/ruby-1.9.3-p448@my_app

然后,我将ruby-1.9.3-p448@my_app目录传递给rvm组:

$> sudo chown jeremy:rvm /usr/local/rvm/gems/ruby-1.9.3-p448@my_app
$> sudo chmod 755 /usr/local/rvm/gems/ruby-1.9.3-p448@my_app

最后,我可以在不使用rvmsudo的情况下创建我的gemset:
$> cd my_app/
$> rvm gemset create my_app
$> rvm --rvmrc --create ruby-1.9.3-p448@my_app
$> cd .. ; cd my_app/
   You are using '.rvmrc' ...

-1

尝试

sudo rvm --rvmrc --create 1.9.3-p448@my_app

2
被踩了票,你显然不知道 rvm 的工作原理 - 它是一个改变当前进程环境的 Shell 函数,加上 sudo 前缀会改变进程并以二进制形式运行。 - mpapis
很公正。这是对RVM的一个好描述,值得点个踩。 - dax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接