Ruby on rails 为什么我在捆绑安装时没有使用";sudo“;

Ruby on rails 为什么我在捆绑安装时没有使用";sudo“;,ruby-on-rails,ruby,Ruby On Rails,Ruby,最近我注意到,尝试在没有“sudo”命令的情况下进行捆绑几乎总是会导致如下结果: Could not find gem 'faye (~> 1.0.0) ruby' in the gems available on this machine. 但是使用sudo bundle安装就像一个champ 为什么我的电脑会这样做 注意 我真的不知道要提供什么额外的信息,所以请随意请求任何信息。对于“sudo”,命令由root用户执行。当这样执行时,它还包括一些环境变量的设置不同,因为它们在根用户的

最近我注意到,尝试在没有“sudo”命令的情况下进行捆绑几乎总是会导致如下结果:

Could not find gem 'faye (~> 1.0.0) ruby' in the gems available on this machine.
但是使用
sudo bundle安装
就像一个champ

为什么我的电脑会这样做

注意

我真的不知道要提供什么额外的信息,所以请随意请求任何信息。

对于“sudo”,命令由root用户执行。当这样执行时,它还包括一些环境变量的设置不同,因为它们在根用户的上下文中是需要的

这可能就是这里发生的事情,因为路径变量(或其他环境变量)在sudo环境中可能不同,它实际上可以找到它正在寻找的gem。而在您的正常执行环境中,它无法找到它,因为路径设置不同

希望这有帮助:)

使用“sudo”命令由root用户执行。当这样执行时,它还包括一些环境变量的设置不同,因为它们在根用户的上下文中是需要的

这可能就是这里发生的事情,因为路径变量(或其他环境变量)在sudo环境中可能不同,它实际上可以找到它正在寻找的gem。而在您的正常执行环境中,它无法找到它,因为路径设置不同


希望这有帮助:)

继续@topedro的回答:您看到这个错误是因为您作为root用户执行了一些操作,而作为另一个用户执行了一些操作

大多数人通过将Ruby和所有gems安装为执行它们的同一用户来避免这种情况。例如,您的个人用户帐户,或在名为(通常为)“deploy”的服务器上为此目的设置的帐户

从当前断开状态开始的一个简单方法是以非root用户身份安装RVM,然后从那里开始。您还可以下载Ruby源代码并自己编译,而不是使用RVM


无论您做什么,都要将Ruby和gems视为非root用户拥有的某个应用程序,该应用程序位于该用户的主目录中。

跟进@topedro的回答:您看到这个错误是因为您作为root用户执行了一些操作,而作为另一个用户执行了一些操作

大多数人通过将Ruby和所有gems安装为执行它们的同一用户来避免这种情况。例如,您的个人用户帐户,或在名为(通常为)“deploy”的服务器上为此目的设置的帐户

从当前断开状态开始的一个简单方法是以非root用户身份安装RVM,然后从那里开始。您还可以下载Ruby源代码并自己编译,而不是使用RVM

无论您做什么,都要将Ruby和gems视为一个非root用户拥有的应用程序,驻留在该用户的主目录中