按照“ 程序包管理器故障排除过程”中的步骤2-5,通常可以解决此问题。
对于步骤2,禁用所有 PPA。您可以取消选中“软件源”中的所有选项,就像取消选中其中一项一样。请参阅如何禁用特定的PPA?。您可以稍后重新启用它们。
对于步骤3,请关闭所有打开的程序。保持网络浏览器打开可能很安全,这样您的说明就可以摆在面前。但是,确保任何程序包管理器未运行特别重要。这包括软件中心,软件更新程序(在旧版Ubuntu中为更新管理器),Synaptic和Gdebi。它还包括命令行包管理实用程序等apt-get
,dpkg
和aptitude
。
请注意,如果其他用户同时登录,则应尽可能注销。
对于步骤4,打开一个终端窗口。无论您使用哪种桌面环境,该方法都有效,一种方法是按Ctrl+ Alt+ T。
对于步骤5,在终端窗口中运行以下命令:
ubuntu-support-status
sudo grep -R proxy /etc/apt/*
grep proxy /etc/environment
echo $http_proxy
echo $ftp_proxy
grep proxy /etc/bash.bashrc
grep proxy ~/.bashrc
cat /etc/apt/apt.conf
sudo fuser -vvv /var/lib/dpkg/lock
sudo fuser -vvv /var/cache/apt/archives/lock
cat /etc/lsb-release
uname -a
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status || sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status
sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
sudo dpkg --configure -a
sudo dpkg --clear-avail
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade
find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;
我于2014年3月2日从PackageManagementTroubleshoootingProcedure复制了该逐字记录。这些命令在过去得到了发展,将来该文章中推荐的命令可能会更改或扩展。因此,您可能要从第5步开始工作。(这篇文章中,创建/编辑的“贡献者Ubuntu文档维基” -尤其是马克Rijckenberg --is 许可CC-BY-SA 3.0。,在这里允许包含与适当的归属)
其中一些命令试图解决该问题(并且可能还会显示诊断信息)。其他人则显示有关您的问题的有价值的信息,您可以将其包括在问题中,也可以提供给帮助您的人。(或者,根据您的技能,可能使您能够诊断和解决它。)
通常,它可以修复它,但如果不能修复,通常会提供足够的信息来修复它。
您不必手动键入这些命令;您可以复制并粘贴它们。不过,我建议分别粘贴并运行每个。这样可以更清楚地了解来自哪些命令的输出。