尽管没有配置代理,为什么apt-get总是使用代理?


26

我正在尝试为禁用代理,apt-get但似乎apt-get从以外的其他地方获取了它的代理配置/etc/apt/apt.conf,因为尽管apt.conf文件为空(并且系统代理设置为None),但它仍在尝试连接到代理。

有人知道吗?

Answers:


32

我正在使用脚本替换不同的配置文件,以便轻松地在代理和非代理环境之间切换。问题是我将代理apt.conf文件替换为一个空的apt.conf文件,该文件随后被忽略。

写入Acquire::http::Proxy "false";apt.conf后,它无需代理即可工作:)


它的工作!使用apt.conf禁用代理。
黎楚祥

1
我的情况很简单,只是从/etc/apt/apt.conf.d/中删除95proxy.conf文件,但最好是显式的:D谢谢。
m3nda 2015年

这个apt.conf文件在哪里?
失去了Crotchet

@LostCrotchet/etc/apt/apt.conf
Ahatius

12

有时,仍然设置了代理环境变量。

要找出答案,请执行以下命令:

env | grep proxy

如果看到一些输出,例如:

http_proxy=http://127.0.0.1:1234/

然后,您需要取消设置此变量。

为此,执行以下命令:

unset http_proxy

对于其他所有条目,请使用相同的方法https_proxy


1
感谢您的提示,很遗憾,http和https代理都为空:\
Ahatius

嗯 有趣。虽然我对此表示怀疑,但可能变量是HTTP_PROXY(全部大写),因此请尝试env | grep -i proxy (-i表示“不区分大小写”),并查看是否有任何输出;值得一试= /。另外,你可以grep -iR proxy /etc/apt/吗?这会在下的所有文件中搜索代理词/etc/apt/,这是因为有时会将代理设置在下的文件中/etc/apt/apt.conf.d/
Alaa Ali 2013年

它也不必与代理全部大写有关。执行grep命令也不会显示任何其他包含代理配置的文件。
Ahatius

好吧,我想我明白了。我正在使用脚本来切换代理的所有配置文件。问题是我用一个空文件替换了apt.conf。然后,Apt显然总是加载最后一个代理配置,因为代理值未设置为false。无论如何,谢谢您的努力!
Ahatius

Maype代理环境已设置/etc/environment,因此我们可以在这里查找。
黎楚祥2014年

4

apt-get读取配置文件的地方不只有一个。您应该运行grep -i proxy /etc/apt/apt.conf.d/*,它将为您提供具有代理设置的确切文件(这只是一个示例,使用update代替proxy

grep -i update /etc/apt/apt.conf.d/*
/etc/apt/apt.conf.d/20apt-show-versions:// When Apt's cache is updated (i.e. apt-cache update)
/etc/apt/apt.conf.d/20packagekit:// Whenever dpkg is called we might have different updates
/etc/apt/apt.conf.d/20packagekit:// i.e. if an user removes a package that had an update
/etc/apt/apt.conf.d/20packagekit:"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
/etc/apt/apt.conf.d/20packagekit:// When Apt's cache is updated (i.e. apt-cache update)
/etc/apt/apt.conf.d/20packagekit:"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";

这还不够,文件/etc/apt/apt.conf还可以包含代理信息。也可以用大写字母书写。
kap

3

如果您不想apt-get使用代理,请apt-get用作:

sudo apt-get -o Acquire::http::proxy=false <update/install> 

2

环境变量http_proxy可能设置为某些代理。尝试清除变量(或至少查看它是否具有值)


2

使它工作的愚蠢方法是暂时禁用代理system settings > Network

或从/etc/environment和删除代理配置/etc/apt/apt.conf

在此处输入图片说明

并在需要代理后再添加手动代理配置。


这行得通,而且很容易遵循:)
Ankit Shubham
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.