安装gem时停止询问密码

每当我捆绑我的rails 3.2 gems时,它会询问我的密码:

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

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

我该怎么办呢?

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

撕掉RVM,注销然后重新进入(以确保完全重新初始化环境),然后以常规用户身份重新运行installer命令,而不是以root身份重新运行安装程序命令,前缀为文档指示的“sudo”。

如果安装RVM,请按照https://rvm.io上的文档以单用户安装或多用户安装进行安装。 在这种情况下,如果没有安装RVM,Billy Chan上面描述的是你的修复程序,尽管我会建议通过确定你需要定期运行哪些命令(gem bin名称)并添加条目来稍微收紧规则对于那些sudoers文件(visudo)。

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

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

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

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

 BUNDLE_DISABLE_SHARED_GEMS: '1' 

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

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

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

 rails new webapp -B 

然后你可以这样做:

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

希望有助于未来的查询。

最好的方法:使用RVM。 使用RVM,您可以在不添加sudo情况下运行gem

如果您不想使用RVM,仍可以在sudo之前添加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 

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

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