13.14 处理apt相关的错误

当然,即使apt很强大,但在使用过程中仍然可能会遇到问题。下面列举一些常见问题及处理方法。

可能给你来个当头一棒的简单问题是“不能打开锁定的文件(Could not open lock file)”这样的错误信息。如果你运行apt-get命令,却没有成功,而且出现了下面这样的错误信息:

  1. E: Could not open lock file /var/lib/dpkg/lock -
  2. open (13 Permission denied)
  3. E: Unable to lock the administration directory
  4. (/var/lib/dpkg/), are you root?

解决这个问题的正确方法就在第二行: 你没有登录为root! 只要以root登录,再运行一次,应该就没有问题了。

说明 如果你正在用K/Ubuntu,或者其他任何能够用sudo来代替root的Linux系统,这个错误消息意味着你没有在命令前面加上sudo。换句话说,如果按以下这样运行命令:

  1. $ apt-get upgrade

就会出现那样的错误消息,应该按以下方式来运行这个命令:

  1. $ sudo apt-get upgrade

apt抱怨软件包有不能满足的依赖关系时,通常会出现另一个常见问题。例如,apt建议运行apt-get -f install命令时,这个问题就正在发生了。程序给出的这一建议是在告诉你:系统中有无法满足的依赖关系,apt因此无法完成任务。

这个问题有两种可能的解决方法。可以按照apt的建议,运行apt-get -f install,下载和安装必需的软件包来修复这一问题。这个方法通常能够解决问题,并继续进行安装。

如果你不想这么做,也可以试着运行一下apt-get -f remove,删除apt认为有问题的软件包并尝试修复问题。这些方法看起来似乎都具有一定的潜在危险(如果稍不留神,可能真就这样了),但每种方法都会给你机会先看看将要发生什么变化,并征得你的同意。在同意命令继续执行之前,务必要检查apt提供的建议。

最后,apt可能会警告你一些软件包会“被阻止更新(have been kept back)”。这个警告是说,apt已经发现了请求安装的包(或它的依赖包)和系统中已经安装的另一个包之间存在冲突。要解决这个问题,可以试试用-u选项来安装被阻止的软件包,这样在安装时可以精确地显示出需要升级什么软件包。