每当我捆绑我的 rails 3.2 gems 时,它都会要求我输入密码:
输入您的密码以将捆绑的 RubyGems 安装到您的系统
这真的很烦人,尤其是在一个项目中捆绑多次时。但是,当我将 gem 目录设置为世界可读时,它总是在执行任何 (!) rails 命令时给我一个警告。当然,这更烦人。
我怎样才能关闭它?
每当我捆绑我的 rails 3.2 gems 时,它都会要求我输入密码:
输入您的密码以将捆绑的 RubyGems 安装到您的系统
这真的很烦人,尤其是在一个项目中捆绑多次时。但是,当我将 gem 目录设置为世界可读时,它总是在执行任何 (!) rails 命令时给我一个警告。当然,这更烦人。
我怎样才能关闭它?
# install gem with the specified path
bundle install --path vendor/bundle
绝对与系统红宝石有关,而不是 RVM,除非您使用多用户安装类型安装 RVM。如果您这样做并且仍然要求您输入密码,那么您安装为 root,严格按照列出的文档说明,并且您的一般用户没有添加到安装程序创建的“rvm”组中。(注意:这是基于您想要多用户安装而不是单用户安装的想法。如果您想要单用户安装,则在运行安装程序时不要使用 sudo 前缀。)
删除 RVM,注销然后重新登录(以确保完全重新初始化环境),然后以您的普通用户身份重新运行安装程序命令,而不是作为 root 用户,并按照文档说明以 'sudo' 为前缀。
如果您没有安装 RVM,请按照https://rvm.io上的文档安装单用户安装或多用户安装。在这种情况下,在没有安装 RVM 的情况下,上面描述的 Billy Chan 是您的解决方案,尽管我建议通过确定您需要定期运行的确切命令集(gem bin 名称)并添加条目来稍微收紧规则对于 sudoers 文件 (visudo) 中的那些。
现在的问题是您尝试使用 *RVM 无法控制的系统 ruby (它只是允许您通过设置正确的 GEM_PATH、RUBY_* 环境变量等来访问它),或者您的 RVM 多用户安装不正确。
这取决于您是想在系统下还是在您的用户下安装 gems。如果在您当前的用户下,您可以简单地关闭此消息并通过调整捆绑器配置来询问。
在文件中的项目中.bundle/config
添加行
BUNDLE_DISABLE_SHARED_GEMS: '1'
所以整个配置文件看起来像
---
BUNDLE_WITHOUT: development:test
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_PATH: /home/youruser/gems/
我的rails安装有这个问题。一个快速的解决方法是在项目创建期间跳过捆绑安装,如下所示:
rails new webapp -B
然后你可以这样做:
cd webapp/
mkdir -p vendor/bundle
bundle install --path vendor/bundle
希望对以后的查询有所帮助。
最好的方法:使用 RVM。使用 RVM,您gem <any command>
无需添加即可运行sudo
如果您不想使用 RVM,您仍然可以sudo
在命令之前添加。您可以设置以防止sudo
通过以下方式询问所有命令的密码:
$ sudo EDITOR=vim visudo
# or any editor in your system
然后,通过添加以下行来编辑文档
username ALL=(ALL) NOPASSWD: ALL
# Where username must be replaced by your real username in system
我知道它可能不那么安全,但在我自己的机器上使用它很方便。
您可以像我一样将以上两种方法一起使用。