Gentoo 系统 运行 emerge --sysn 更新 portage 后,运行 emerge -pvu 更新系统,出现如下错误:
xut ~ # emerge -pvu world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-apps/util-linux-2.20.1-r1 [2.19.1-r1] USE="cramfs crypt ncurses nls perl* unicode -ddate% -loop-aes -old-linux (-selinux) -slang -static-libs% (-uclibc)" 4,507 kB [ebuild U ] sys-devel/gcc-4.5.3-r2 [4.5.3-r1] USE="cxx fortran mudflap nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -graphite -gtk (-hardened) (-libssp) -lto (-multilib) -multislot -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla (-libffi%)" 64,859 kB [blocks B ] <sys-apps/sysvinit-2.88-r3 ("<sys-apps/sysvinit-2.88-r3" is blocking sys-apps/util-linux-2.20.1-r1) Total: 2 packages (2 upgrades), Size of downloads: 69,365 kB Conflict: 1 block (1 unsatisfied) * Error: The above package list contains packages which cannot be * installed at the same time on the same system. (sys-apps/sysvinit-2.88-r2::gentoo, installed) pulled in by >=sys-apps/sysvinit-2.86-r6 required by (virtual/init-0::gentoo, installed) (sys-apps/util-linux-2.20.1-r1::gentoo, ebuild scheduled for merge) pulled in by sys-apps/util-linux required by @system >=sys-apps/util-linux-2.16 required by (sys-fs/udev-164-r2::gentoo, installed) >=sys-apps/util-linux-2.16 required by (dev-libs/apr-1.4.5::gentoo, installed) >=sys-apps/util-linux-2.16 required by (sys-fs/e2fsprogs-1.42::gentoo, installed) For more information about Blocked Packages, please refer to the following section of the Gentoo Linux x86 Handbook (architecture is irrelevant): http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked附图:
大致意思是:软件包 sys-apps/sysvinit-2.88-r3 阻挡了sys-apps/util-linux-2.20.1-r1的安装。
现有解决方法如下:
先卸载软件包 sys-apps/sysvinit-2.88-r3
xut ~ # emerge --unmerge sysvinit * This action can remove important packages! In order to be safer, use * `emerge -pv --depclean <atom>` to check for reverse dependencies before * removing packages. sys-apps/sysvinit selected: 2.88-r2 protected: none omitted: none All selected packages: sys-apps/sysvinit-2.88-r2 >>> 'Selected' packages are slated for removal. >>> 'Protected' and 'omitted' packages will not be removed. >>> Waiting 5 seconds before starting... >>> (Control-C to abort)... >>> Unmerging in: 5 4 3 2 1 >>> Unmerging sys-apps/sysvinit-2.88-r2... * GNU info directory index is up-to-date.附图:
然后,更新系统(-p 此处仅作演示,并未真正更新)
xut ~ # emerge -pvu world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-apps/util-linux-2.20.1-r1 [2.19.1-r1] USE="cramfs crypt ncurses nls perl* unicode -ddate% -loop-aes -old-linux (-selinux) -slang -static-libs% (-uclibc)" 4,507 kB [ebuild U ] sys-devel/gcc-4.5.3-r2 [4.5.3-r1] USE="cxx fortran mudflap nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -graphite -gtk (-hardened) (-libssp) -lto (-multilib) -multislot -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla (-libffi%)" 64,859 kB Total: 2 packages (2 upgrades), Size of downloads: 69,365 kB xut ~ #附图:
至此,冲突(conflict)已经解决。可以运行 emerge -u world 安装软件包了。
emerge -u world 命令运行完毕后:
xut ~ # emerge -u world Calculating dependencies... done! >>> Auto-cleaning packages... >>> No outdated packages were found on your system. xut ~ #附图:
至此,系统已经更新完毕!
最后,可以运行 emerge sysvinit 安装之前卸载的软件包了 ....
附图:(emerge -pv sysvinit 此处仅作演示,表示依赖关系已解决,并未实际安装)
总结: 用emerge 安装软件包是,若遇到阻挡(Block) 情况,可先卸载掉阻挡软件包再安装,安装完成后再重新安装卸载掉的软件包。