‘sudo apt-get’ 和 ‘sudo -E apt-get’ 之间的区别

‘sudo apt-get’ 和 ‘sudo -E apt-get’ 之间的区别

我在 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 会导致找不到包。另一方面,使用带有 sudo 标志的相同命令可以-E使它们正常工作。有人能解释一下这里发生了什么吗?

编辑:我忘了补充一下,我使用了多个互联网连接;一个有代理,一个没有。常规 sudo 在没有代理的那个上有效,但在有代理的那个上无效。

答案1

这里的秘诀是proxy。在您的环境中,您将拥有允许您访问互联网的代理信息集。

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

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

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

  • env
  • sudo env
  • sudo -E env

相关内容