搭好 rails 的环境后,然后采用 rails new new_project 时出现 Enter your password to install the bundled RubyGems to your system: ,然后不管输入什么密码都不对。网上找也没找到答案。请问这可能是什么问题呢?此操作在一般用户权限下。
虽然没碰见过这个问题,不过直觉应该是你的 gems 存放目录没有当前用户的写权限造成的。
你可以在命令行下输入:$ gem env,看一下 INSTALLATION DIRECTORY 所在的目录,再去看看该目录的权限吧。
$ gem env
INSTALLATION DIRECTORY
我猜应该是问你要 root 密码。
简单地办法呢,装 rvm 或 rbenv,把 ruby 和 gems 放在当前用户可控的路径下进行管理。
试试 rails new new_project --skip-bundle,生成后进入目录再运行 bundle install --path vendor/bundle
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/
/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 install。 bundle 加上 --path vendor/bundle 是把 gems 安装到 vendor/bundle 下而不是系统的 gems 安装目录中。
--skip-bundle
rails new
bundle install
bundle
--path vendor/bundle
vendor/bundle
#7 楼 @doitian 重新登录也不行,电脑重启了也不行。每个 rails app 都需要运行 bundle install 安装一些 gems,但大部分 rails 项目这些 gems 都通用,为何不把一些常用的 gems 都放到一个公共目录下,非得每次安装都得将这些 gems 安装到/usr/local/rvm/gems 目录下?