当我尝试在 Ubuntu 16.04 上安装 Git 时,出现错误。我用来安装 git 的命令是:
sudo apt-get install git
我遇到的错误是:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
git : Depends: liberror-perl but it is not going to be installed
Depends: git-man (> 1:2.7.4) but it is not going to be installed
Depends: git-man (< 1:2.7.4-.) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or
specify a solution).
即使我使用建议的命令 (apt-get -f install) 安装 git,错误仍然存在。有谁知道如何解决这个问题吗?
答案1
有时我们的系统可能不是最新的,无法接收安装,因此我们可以使用以下方法更新:
更新包信息:
sudo apt-get update
系统上的升级包和修复过程中损坏的软件包:
sudo apt-get -f dist-upgrade
仅有的修复损坏的软件包:
sudo apt-get -f install
答案2
liberror-perl
我在尝试安装时遇到了同样的问题git
。其他答案(sudo apt-get update && sudo apt-get dist-upgrade && apt-get -f install
)对我不起作用。
通过尝试直接安装每个包来手动跟踪依赖关系问题链,看起来问题出在perl-base
:
$ sudo apt install liberror-perl
liberror-perl : Depends: perl but it is not going to be installed
$ sudo apt install perl
perl : Depends: perl-base (= 5.22.1-9) but 5.22.1-9ubuntu0.5 is to be installed
$ sudo apt install perl-base
perl-base is already the newest version (5.22.1-9ubuntu0.5).
因此,该perl
软件包依赖于过时的 perl-base 版本。我不确定这是怎么造成的,但我怀疑曾经有较新的版本可用,可能是来自一个临时的 apt 源,后来从我的系统中删除了。我通过降级perl-base
到想要的版本解决了这个问题perl
:
$ sudo apt install -f perl-base=5.22.1-9
之后,git 安装正常。为了以防万一有更新的 perl-base 版本可用,我尝试升级它,但上述版本也是最新版本:
$ sudo apt install perl-base=\*
perl-base is already the newest version (5.22.1-9).
Selected version '5.22.1-9' (Ubuntu:16.04/xenial [amd64]) for 'perl-base'
据我所知,这不会造成任何问题,但是 YMMV。