4

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

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

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

我怎样才能关闭它?

4

5 回答 5

11
# install gem with the specified path
bundle install --path vendor/bundle
于 2013-11-14T05:42:10.943 回答
3

绝对与系统红宝石有关,而不是 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 多用户安装不正确。

于 2013-03-11T15:30:55.820 回答
1

这取决于您是想在系统下还是在您的用户下安装 gems。如果在您当前的用户下,您可以简单地关闭此消息并通过调整捆绑器配置来询问。

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

BUNDLE_DISABLE_SHARED_GEMS: '1'

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

--- 
BUNDLE_WITHOUT: development:test
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_PATH: /home/youruser/gems/
于 2013-08-11T17:40:50.860 回答
1

我的rails安装有这个问题。一个快速的解决方法是在项目创建期间跳过捆绑安装,如下所示:

rails new webapp -B

然后你可以这样做:

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

希望对以后的查询有所帮助。

于 2015-04-05T23:32:47.580 回答
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

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

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

于 2013-03-11T07:53:02.833 回答