安装宝石时停止询问密码

时间:2013-03-11 02:08:20

标签: ruby-on-rails gem rvm bundler

每当我捆绑我的rails 3.2 gems时,它会要求我输入密码:

  

输入您的密码以将捆绑的RubyGems安装到您的系统

这真的很烦人,尤其是在一个项目中多次捆绑时。但是,当我将gem目录设置为全局可读时,它总是在执行任何(!)rails命令时给出警告。当然,这更令人讨厌。

如何关闭此功能?

5 个答案:

答案 0 :(得分:10)

# install gem with the specified path
bundle install --path vendor/bundle

答案 1 :(得分:3)

绝对与系统ruby有关,而不是RVM,除非使用多用户安装类型安装RVM。如果您这样做并且仍然要求您提供密码,那么您安装以root身份严格按照列出的文档说明,并且您的普通用户未添加到安装程序创建的'rvm'组。 (注意:这是基于您希望多用户安装而不是单个用户安装的想法。如果您希望单个用户安装,而不是运行安装程序时使用sudo的前缀。 )

撕掉RVM,注销然后重新登录(以确保完全重新初始化环境),然后以常规用户身份重新运行安装程序命令,而不是以root身份,以'sudo为前缀'正如文件指示的那样。

如果您安装了RVM,请按照https://rvm.io中的文档安装,作为单个用户安装或多用户安装。在这种情况下,如果没有安装RVM,Billy Chan上面描述的是你的修复程序,虽然我建议通过弄清楚你需要运行哪些完全命令集(gem bin名称)来收紧规则定期并为sudoers文件(visudo)中的那些添加条目。

现在问题是你试图使用系统ruby * RVM做 NOT 控制(它只允许你通过设置正确的GEM_PATH,RUBY_ *环境变量等来访问它),或者您的RVM多用户安装未正确完成。

答案 2 :(得分:1)

这取决于您是要在系统下还是在用户下安装gem。如果在您当前的用户下,您只需转动此消息并通过调整捆绑器配置来询问。

在文件.bundle/config的项目中添加行

BUNDLE_DISABLE_SHARED_GEMS: '1'

所以整个配置文件看起来像

--- 
BUNDLE_WITHOUT: development:test
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_PATH: /home/youruser/gems/

答案 3 :(得分:1)

我的导轨安装遇到了这个问题。一个快速的解决方法是在项目创建过程中跳过bundle install,如下所示:

rails new webapp -B

然后你可以这样做:

cd webapp/
mkdir -p vendor/bundle
bundle install --path vendor/bundle

希望有助于未来的查询。

答案 4 :(得分:0)

最好的方法:使用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

我知道它可能不那么安全,但在我自己的机器上使用很方便。

你可以像我一样使用上述两种方法。