“sudo apt-get”和“sudo -E apt-get”之间的区别

Adi*_*ava 2 updates apt sudo vmware

我在 VMWare Player (7.1.3 build-3206955) 上使用 Ubuntu 15.10 来宾,Windows 10 作为主机操作系统。我可以使用 Firefox 在访客内部浏览网页,但是我无法apt在终端上使用。每当我调用命令时sudo apt-get update,它都会卡在0% [connecting to in.archive.ubuntu.com],最终失败。此外,使用sudo apt-get install <package>always 会导致甚至找不到包。另一方面,-E在 sudo 上使用带有标志的相同命令可以使它们工作。有人可以解释这里发生了什么吗?

编辑:我忘了补充说我正在使用多个互联网连接;一个有代理,一个没有。常规 sudo 可以在没有代理的情况下工作,但不能在有代理的情况下工作。

NZD*_*NZD 5

这里的神奇词是proxy。在您的环境中,您将拥有允许您访问 Internet 的代理信息集。

环境变量http_proxy包含您的代理设置。
执行echo $http_proxy以查看它们(也许$HTTP_PROXY)。

如果运行sudo <command>,该命令将在其自己的环境中执行为root. 如果您将-E选项添加到sudo,该命令将作为 执行root,但您的大部分环境都会被复制。

您可以通过执行以下三个命令来检查:

  • env
  • sudo env
  • sudo -E env