为了让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
行为(请参阅链接页面)。