必须执行“sudo su”,然后执行 apt-get update/upgrade/install,以 sudo 开头不起作用

必须执行“sudo su”,然后执行 apt-get update/upgrade/install,以 sudo 开头不起作用

为了让apt-get update/upgrade/install命令正常工作,我在/etc/environment文件中添加了代理信息。例如:

http_proxy="http://proxy-chain.acmewidgets.com:8080/"   
https_proxy="https://proxy-chain.acmewidgets.com:8080/"    
ftp_proxy="ftp://proxy-chain.acmewidgets.com:8080/"    
socks_proxy="socks://proxy-chain.acmewidgets.com:8080/"

然后,这对我的设置很重要(不知道为什么 - 这是我的问题),我必须进入超级用户模式才能开始apt-get 工作。就像我说的,我不确定为什么,但简单地在上述 apt-get 命令前面加上sudo对我来说不起作用。例如,当我这样做时sudo apt-get update,终端窗口会像这样挂起:

somedude@ACME-WIDGETS-03:~$ sudo apt-get update

0% [Connecting to us.archive.ubuntu.com (91.189.91.13)] [Connecting to security

有效的方法是sudo su在命令行中输入,然后运行apt-get不带前缀的命令sudo。即使我在超级用户终端(通过执行打开sudo gnome-terminal)中工作,我也必须这样做。直到我sudo su在提示符下发出该命令,才会看到中的代理设置/etc/environment。我通过echo $http_proxy在之前和之后执行来检查这一点su;之前:什么都没有返回,之后:设置的内容/etc/environment返回了。

没什么大不了的,因为我能够获取更新并进行安装;但 Ubuntu 的想法是使用 sudo,这样您就不会在超级用户模式下意外造成损坏。所以你觉得发生了什么?谢谢。

答案1

这是预期行为-sudo默认重置环境。使用启动 root shellsudo su是一种解决方法。您还可以修改sudo行为(请参阅链接页面)。

相关内容