這篇只討論我自己常遇到的一個情境: 明明只是升級某個套件或加裝相關套件, aptitude 卻發瘋似的說有些相關套件的相依版本不合, 要移掉一大堆套件才能繼續。
解法是下指令時同時安裝目標套件和 aptitude 抱怨不合的相依套件。
實例如下:
$ sudo aptitude install git-svn [100%] Reading package lists ... The following NEW packages will be installed: git-svn libsvn-perl{a} libterm-readkey-perl{a} The following packages will be upgraded: perl perl-base perl-modules 3 packages upgraded, 3 newly installed, 0 to remove and 793 not upgraded. Need to get 10.3 MB of archives. After unpacking 4,449 kB will be used. The following packages have unmet dependencies: libperl5.14 : Depends: perl-base (= 5.14.2-6ubuntu2.1) but 5.14.2-6ubuntu2.3 is to be installed. Internal error: the solver Install(libc-bin:amd64 2.15-0ubuntu10.5 <libc6:i386 2.15-0ubuntu10.5 -> {libc-bin:amd64 2.15-0ubuntu10.5 libc-bin:i386 2.15-0ubuntu10.5}>) of a supposedly unresolved dependency is already installed in step 153 Internal error: the solver Install(libc-bin:amd64 2.15-0ubuntu10 <libc6:i386 2.15-0ubuntu10 -> {libc-bin:amd64 2.15-0ubuntu10 libc-bin:i386 2.15-0ubuntu10}>) of a supposedly unresolved dependency is already installed in step 335 Internal error: the solver Install(fontconfig-config:amd64 2.8.0-3ubuntu9 <libfontconfig1:i386 2.8.0-3ubuntu9 -> {fontconfig-config:amd64 2.8.0-3ubuntu9}>) of a supposedly unresolved dependency is already installed in step 337 The following actions will resolve these dependencies: Remove the following packages: 1) gtk2-engines-murrine:i386 2) hplip 3) libatk1.0-0:i386 ... 73) printer-driver-hpijs 74) telepathy-haze 75) zlib1g:i386 Leave the following dependencies unresolved: 76) empathy recommends telepathy-haze 77) foomatic-db-compressed-ppds recommends printer-driver-hpijs 78) libsane-hpaio recommends hplip (= 3.12.2-1ubuntu3) 79) ubuntu-desktop recommends hplip Accept this solution? [Y/n/q/?] q Abandoning all efforts to resolve these dependencies. Abort. $ sudo aptitude install git-svn libperl5.14 ... The following NEW packages will be installed: git-svn libsvn-perl{a} libterm-readkey-perl{a} The following packages will be upgraded: libperl5.14 perl perl-base perl-modules 4 packages upgraded, 3 newly installed, 0 to remove and 792 not upgraded. Need to get 10.3 MB of archives. After unpacking 4,449 kB will be used. Do you want to continue? [Y/n/?] y Selecting previously unselected package git-svn. Unpacking git-svn (from .../git-svn_1%3a1.7.9.5-1_all.deb) ... Processing triggers for man-db ... Setting up libperl5.14 (5.14.2-6ubuntu2.3) ... Setting up perl-modules (5.14.2-6ubuntu2.3) ... Setting up perl (5.14.2-6ubuntu2.3) ... Setting up libsvn-perl (1.6.17dfsg-3ubuntu3.3) ... Setting up libterm-readkey-perl (2.30-4build3) ... Setting up git-svn (1:1.7.9.5-1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place ... Current status: 792 updates [-4]. [fcamel@fc-vm ~/dev ] $ git svn fatal: Not a git repository (or any of the parent directories): .git Already at toplevel, but .git not found at /usr/lib/git-core/git-svn line 308
2015/01/04 更新
可配合 apt-cache show PKG 了解套件的相依性, 實用例子見《Ubuntu 12.04 安裝 graphviz 遇到 confclit》。
另外這個不知要記在那裡, 順便記在這裡: 安裝指定版本的方法: aptitude install PKG=VERSION。PKG=VERSION 的語法可用在 isntall, show, download, forbid-version 等指令。
沒有留言:
張貼留言