解决Gentoo emerge block error

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
附图:

解决Gentoo emerge block error_第1张图片


大致意思是:软件包 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.
附图:
解决Gentoo emerge block error_第2张图片


然后,更新系统(-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 ~ #
附图:

解决Gentoo emerge block error_第3张图片


至此,冲突(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 此处仅作演示,表示依赖关系已解决,并未实际安装)

解决Gentoo emerge block error_第4张图片



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

你可能感兴趣的:(perl,action,fortran,merge,dependencies,conflict)