问题描述
我正在尝试禁用 apt-get
的代理,但似乎 apt-get
从 /etc/apt/apt.conf
以外的其他地方获取代理配置,因为尽管 apt.conf
文件为空(并且系统代理设置为 None
)它仍在尝试连接到代理.
有人知道吗?
最佳方法
我正在使用脚本来替换不同的配置文件,以便在代理和非代理环境之间轻松切换。问题是我用一个空的 apt.conf 文件替换了代理 apt.conf 文件,然后 apt 忽略了它。
也适用于当前最新的 Ubuntu。
如果代理 conf 不存在,请创建它:
$ sudo touch /etc/apt/apt.conf.d/95proxy.conf
然后添加以下两行:
Acquire::http::Proxy "false";
Acquire::https::Proxy "false";
次佳方法
如果您不希望 apt-get
使用代理,\n请将 apt-get
用作:
sudo apt-get -o Acquire::http::proxy=false <update/install>
第三种方法
有时,仍然设置了代理环境变量。
要找出答案,请执行以下命令:
env | grep proxy
如果您看到一些输出,例如:
http_proxy=http://127.0.0.1:1234/
然后你需要取消设置这个变量。
为此,请执行以下命令:
unset http_proxy
对所有其他条目采用相同的方法,例如 https_proxy
。
第四种方法
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";