apt更新一直掛起,無法排除故障

apt更新一直掛起,無法排除故障

Ubuntu 16.04 上的 apt 更新在每次視圖更新時都會隨機掛起。

我嘗試過的任何方法都無法永久修復它,而且我也無法對其進行故障排除。

我唯一的解決方案是創建一個 shell 腳本來apt clean && apt update.然後就可以了。

echo -e '#!/bin/bash\nsudo apt clean && sudo apt update' | sudo tee /usr/bin/apt-update; sudo chmod +x /usr/bin/apt-update

我做過的事:

切換到谷歌DNS

停用 NetworkManager 管理的 DNS

sudo sed -i -e 's/^dns=dnsmasq/#dns=dnsmasq/' /etc/NetworkManager/NetworkManager.conf

將 Google DNS 新增至 DHCP 用戶端(dhcp 會將 google DNS 新增至 /etc/resolv.conf)

echo 'prepend domain-name-servers 8.8.4.4;' | sudo tee -a /etc/dhcp/dhclient.conf

echo 'prepend domain-name-servers 8.8.8.8;' | sudo tee -a /etc/dhcp/dhclient.conf

重新啟動網路管理員

systemctl restart NetworkManager.service

編輯 apt 配置

一些存儲庫存在 http/1.1 管道問題。

請嘗試以下操作:

echo 'Acquire::http::Pipeline-Depth "0";' | sudo tee /etc/apt/apt.conf.d/99pipelining-off


有時很難看出哪些儲存庫因逾時而失敗

減少超時

echo 'Acquire::http::Timeout "5";' | sudo tee /etc/apt/apt.conf.d/99reduce-timeout


強制 IP V4 禁止嘗試解析 IP V6

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

為 apt-update 建立腳本

apt-get 更新經常掛起/失敗。解決這個問題的方法是總是 apt cleanapt update

此命令會建立一個名為 的腳本apt-update,該腳本僅執行此操作,應該使用apt-get update或代替apt update

echo -e '#!/bin/bash\nsudo apt clean && sudo apt update' | sudo tee /usr/bin/apt-update; sudo chmod +x /usr/bin/apt-update

啟用自動鏡像切換

sudo sed -i -e 's/deb http:\/\/il.archive.ubuntu.com\/ubuntu\//deb mirror:\/\/mirrors.ubuntu.com\/mirrors.txt/' sources.list

啟用合作夥伴儲存庫

sudo sed -i.bak "/^# deb .*partner/ s/^# //" /etc/apt/sources.list


我嘗試編輯清潔政策

echo 'DSELECT::Clean "always";' | sudo tee /etc/apt/apt.conf.d/99DselectAlwaysClean

echo 'APT::Get::Clean=always;' | sudo tee /etc/apt/apt.conf.d/99AlwaysClean

我什至嘗試添加更新後和更新前命令

echo 'APT::Update::Post-Invoke {"/usr/bin/apt apt clean || exit 0"};' | sudo tee /etc/apt/apt.conf.d/99PostUpdateClean

echo 'APT::Update::Pre-Invoke {"/usr/bin/apt clean || exit 0"};' | sudo tee /etc/apt/apt.conf.d/99PreUpdateClean

這兩個命令實際上是有問題的,因為它們似乎試圖竊取鎖或其他東西。最後我把它們刪除了。

我怎麼能永久解決這個問題,而不需要像 shell 腳本那樣採用駭客手段apt clean && apt update

我該如何解決這個問題?

相關內容