解决Gentoo emerge block error

来源:互联网 发布:挖掘社交网络 中文版 编辑:程序博客网 时间:2024/05/17 01:48

Gentoo 系统 运行 emerge --sysn 更新 portage 后,运行 emerge -pvu 更新系统,出现如下错误:

xut ~ # emerge -pvu worldThese 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 kBConflict: 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 followingsection 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: noneAll 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 worldThese 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 kBTotal: 2 packages (2 upgrades), Size of downloads: 69,365 kBxut ~ #
附图:



至此,冲突(conflict)已经解决。可以运行 emerge -u world 安装软件包了。

emerge -u world 命令运行完毕后:

xut ~ # emerge -u worldCalculating dependencies... done!>>> Auto-cleaning packages...>>> No outdated packages were found on your system.xut ~ #
附图:


至此,系统已经更新完毕!


最后,可以运行 emerge sysvinit 安装之前卸载的软件包了 ....

附图:(emerge -pv sysvinit 此处仅作演示,表示依赖关系已解决,并未实际安装)




总结: 用emerge 安装软件包是,若遇到阻挡(Block) 情况,可先卸载掉阻挡软件包再安装,安装完成后再重新安装卸载掉的软件包。

原创粉丝点击