Renjith G Asked: 2010-10-16 03:07:48 +0800 CST2010-10-16 03:07:48 +0800 CST 2010-10-16 03:07:48 +0800 CST 如何在命令行中通过代理运行“sudo apt-get update”? 772 在我的办公室我想通过(wget)更新和下载,他们在这里使用代理? 我怎样才能通过命令行做到这一点? networking 8 个回答 Voted paulo.albuquerque 2010-12-30T11:21:00+08:002010-12-30T11:21:00+08:00 在某些版本中,sudo 的配置方式是在运行命令时所有环境变量都被清除。要保留http_proxy的值并修复此问题,您需要编辑 /etc/sudoers,运行: visudo 然后找到一行说明: Defaults env_reset 并在其后添加: Defaults env_keep = "http_proxy ftp_proxy" 事情将按预期开始。 感谢Ubuntu 论坛中的kdogksu找到了解决方案。 为了不仅修复 apt-get 还修复图形 X11 实用程序,例如 synaptic、mintintall 等),下面的行/etc/sudoers应该可以完成这项工作: Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY" John Cartwright 2013-03-18T20:24:36+08:002013-03-18T20:24:36+08:00 用这个。 ubuntu@ubuntu:~$ cat /etc/apt/apt.conf Acquire::http::Proxy "http://Username:[email protected]:8080"; 这就是我使用的。完美运行。 Apt 还允许将单独的设置/etc/apt/apt.conf.d/放在.conf. ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy Acquire::http::Proxy "http://Username:[email protected]:8080"; Sam 2011-04-07T23:05:42+08:002011-04-07T23:05:42+08:00 对我有用的是: sudo http_proxy=http://yourserver apt-get update 这有点奇怪,因为简单地导出 http_proxy 然后运行 sudo echo $http_proxy 就乖乖打印出导出的值 Oli 2010-10-16T03:19:54+08:002010-10-16T03:19:54+08:00 export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport sudo apt-get update 导出不需要sudoing,如果您的代理是匿名的,只需放弃该proxyusername:proxypassword@部分。 Prashant Adlinge 2019-09-27T22:52:15+08:002019-09-27T22:52:15+08:00 如果您想在命令行中通过代理运行“sudo apt-get update”,请使用以下命令, sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update; Scaine 2010-12-30T12:24:16+08:002010-12-30T12:24:16+08:00 Ubuntu 对验证代理非常不利。我在工作中使用 Ubuntu 笔记本电脑,损坏的数量令人难以置信。 Synaptic、Apt、Firefox、Chromium 等都使用不同的方法来指定代理,并且没有地方可以安全地指定凭据。 关于该主题的一些错误: https ://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070 https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138 https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827 https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630 Oli 建议使用导出是唯一安全的方法。如果代理服务器使用辅助身份验证来最小化主身份验证服务器(比如可能是 Active Directory)上的负载,有时也可以“捏造”代理支持。这是第一个代理连接由代理针对 AD 进行身份验证的地方,然后在设定的时间段(通常 5 分钟)内,所有其他连接都被“信任”为该用户。因此,您可以打开 Firefox,浏览互联网(任何地方都可以),然后通过指定代理尝试您的实用程序(wget、synaptic 等),但将用户名留空。 Ubuntu 通常对任何公司环境都怀有敌意,因为它允许如此轻松地读取密码。Seahorse 是罪魁祸首,但网络管理器也令人震惊 - 连接到任何经过 PEAP 身份验证的网络,您只需将密码存储在小程序中,任何人都可以查看谁可能会借用您的笔记本电脑。显然,笔记本电脑共享在 Linux 领域被认为是一种亵渎,因为 Seahorse 开发人员拒绝了不安全的说法。在那之后,我没有勇气联系网络经理开发人员。 Huygens 2010-10-16T03:21:22+08:002010-10-16T03:21:22+08:00 如果是临时配置,你可以试试这个: sudo bash -c 'http_proxy="http://< proxy_host >:< proxy_port >/" apt-get update' 您需要这个,因为需要为“root”帐户定义环境变量。之前做和导出不应该工作。 对于永久配置,您必须修改系统文件。这已经在以下关于如何检查网络代理是否真正应用的答案中进行了描述?. Jon Brett 2010-10-16T05:32:35+08:002010-10-16T05:32:35+08:00 你试过编辑/etc/apt/apt.conf吗?我用它来在我们的公司代理后面使用 apt。 Acquire::http::proxy "http://user:password@host:port/"; 我相信 apt 使用这个值,除非在你的 shell 环境中定义了 $http_proxy (即 $http_proxy 优先)。
在某些版本中,sudo 的配置方式是在运行命令时所有环境变量都被清除。要保留http_proxy的值并修复此问题,您需要编辑 /etc/sudoers,运行:
然后找到一行说明:
并在其后添加:
事情将按预期开始。
感谢Ubuntu 论坛中的kdogksu找到了解决方案。
为了不仅修复 apt-get 还修复图形 X11 实用程序,例如 synaptic、mintintall 等),下面的行
/etc/sudoers
应该可以完成这项工作:用这个。
这就是我使用的。完美运行。
Apt 还允许将单独的设置
/etc/apt/apt.conf.d/
放在.conf
.对我有用的是:
这有点奇怪,因为简单地导出 http_proxy 然后运行 sudo echo $http_proxy 就乖乖打印出导出的值
导出不需要
sudo
ing,如果您的代理是匿名的,只需放弃该proxyusername:proxypassword@
部分。如果您想在命令行中通过代理运行“sudo apt-get update”,请使用以下命令,
Ubuntu 对验证代理非常不利。我在工作中使用 Ubuntu 笔记本电脑,损坏的数量令人难以置信。
Synaptic、Apt、Firefox、Chromium 等都使用不同的方法来指定代理,并且没有地方可以安全地指定凭据。
关于该主题的一些错误: https ://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
Oli 建议使用导出是唯一安全的方法。如果代理服务器使用辅助身份验证来最小化主身份验证服务器(比如可能是 Active Directory)上的负载,有时也可以“捏造”代理支持。这是第一个代理连接由代理针对 AD 进行身份验证的地方,然后在设定的时间段(通常 5 分钟)内,所有其他连接都被“信任”为该用户。因此,您可以打开 Firefox,浏览互联网(任何地方都可以),然后通过指定代理尝试您的实用程序(wget、synaptic 等),但将用户名留空。
Ubuntu 通常对任何公司环境都怀有敌意,因为它允许如此轻松地读取密码。Seahorse 是罪魁祸首,但网络管理器也令人震惊 - 连接到任何经过 PEAP 身份验证的网络,您只需将密码存储在小程序中,任何人都可以查看谁可能会借用您的笔记本电脑。显然,笔记本电脑共享在 Linux 领域被认为是一种亵渎,因为 Seahorse 开发人员拒绝了不安全的说法。在那之后,我没有勇气联系网络经理开发人员。
如果是临时配置,你可以试试这个: sudo bash -c 'http_proxy="http://< proxy_host >:< proxy_port >/" apt-get update'
您需要这个,因为需要为“root”帐户定义环境变量。之前做和导出不应该工作。
对于永久配置,您必须修改系统文件。这已经在以下关于如何检查网络代理是否真正应用的答案中进行了描述?.
你试过编辑
/etc/apt/apt.conf
吗?我用它来在我们的公司代理后面使用 apt。我相信 apt 使用这个值,除非在你的 shell 环境中定义了 $http_proxy (即 $http_proxy 优先)。