Rails rails new 出现 Enter your password to install the bundled RubyGems to your system: 提示

xautjzd · 2013年07月29日 · 最后由 xautjzd 回复于 2013年07月30日 · 3069 次阅读

搭好 rails 的环境后,然后采用 rails new new_project 时出现 Enter your password to install the bundled RubyGems to your system: ,然后不管输入什么密码都不对。网上找也没找到答案。请问这可能是什么问题呢?此操作在一般用户权限下。

虽然没碰见过这个问题,不过直觉应该是你的 gems 存放目录没有当前用户的写权限造成的。

你可以在命令行下输入:$ gem env,看一下 INSTALLATION DIRECTORY 所在的目录,再去看看该目录的权限吧。

我猜应该是问你要 root 密码。

简单地办法呢,装 rvm 或 rbenv,把 ruby 和 gems 放在当前用户可控的路径下进行管理。

试试 rails new new_project --skip-bundle,生成后进入目录再运行 bundle install --path vendor/bundle

#1 楼 @nightire 确实是权限不够的问题,在 root 用户下没问题。我当时使用一般用户权限安装 rvm 时,系统会自动将其安装到/usr/local/rvm 目录下,而不是~/.rvm/目录下,并且安装失败,毕竟一般用户没有对/usr/local 目录有写的权限。迫于无奈只有用 root 权限安装了。现在不明白的是 rails new myapp,bundle install 会需要添加什么东西到/usr/local/rvm 目录下呢?还有一个问题是:它确实是要 root 密码,但是我输入正确的密码也不行。我的系统是 fedora17

#2 楼 @doitian 非常感谢。这个方法确实行的通,但是能否告诉下原理?我前边的方法为何行不通,而你这种方式确可以?都是在一般用户权限下操作。

如果是按照到/usr/local/rvm下的话,把希望使用 rvm 的用户加入到 rvm group,应该就可以了。 /usr/local/rvm文件夹的权限应该是这样子的drwxrwsr-x 23 root rvm 4096 Jun 21 15:26 rvm/

#5 楼 @kamiiyu 我已经将我使用 rvm 的用户加入了 rvm group,但是还是不行。可以通过 groups usename 查到用户已经属于 rvm 组了

#6 楼 @xautjzd 需要重新登录下才会生效。--skip-bundle 是让 rails new 不要在生成 app 后直接运行 bundle installbundle 加上 --path vendor/bundle 是把 gems 安装到 vendor/bundle 下而不是系统的 gems 安装目录中。

#7 楼 @doitian 重新登录也不行,电脑重启了也不行。每个 rails app 都需要运行 bundle install 安装一些 gems,但大部分 rails 项目这些 gems 都通用,为何不把一些常用的 gems 都放到一个公共目录下,非得每次安装都得将这些 gems 安装到/usr/local/rvm/gems 目录下?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号