每当我捆绑我的rails 3.2 gems时,它会要求我输入密码:
输入您的密码以将捆绑的RubyGems安装到您的系统
这真的很烦人,尤其是在一个项目中多次捆绑时。但是,当我将gem目录设置为全局可读时,它总是在执行任何(!)rails命令时给出警告。当然,这更令人讨厌。
如何关闭此功能?
答案 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
我知道它可能不那么安全,但在我自己的机器上使用很方便。
你可以像我一样使用上述两种方法。