由于旧的 SSP __guard 符号,glibc 无法在 Gentoo Linux 上升级

由于旧的 SSP __guard 符号,glibc 无法在 Gentoo Linux 上升级

当我做的时候emerge -avuDN glibc总是得到这个:

>>> Emerging (1 of 28) sys-libs/glibc-2.15-r3
* glibc-2.15.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                                       [ ok ]
* glibc-ports-2.15.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                                 [ ok ]
* glibc-2.15-patches-23.tar.bz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                           [ ok ]
make -s glibc-test 
make -s glibc-test 
* Scanning system for __guard to see if you need to rebuild first ... ...                                                                      [ !! ]
* Your system still has old SSP __guard symbols.  You need to
* rebuild all the packages that provide these files first:
* //bin/busybox
* //sbin/lvm.static
* //sbin/dmsetup.static
* //sbin/dmeventd.static
* //usr/bin/diet
* //usr/bin/dnsd
* //usr/bin/elftrunc
* //usr/sbin/vdu
* //usr/sbin/vps
* //usr/sbin/vtag
* //usr/sbin/nattribute
* //usr/sbin/vattribute
* //usr/sbin/chxid
* //usr/sbin/lsxid
* //usr/sbin/showattr
* //usr/sbin/vkill
* //usr/sbin/vwait
* //usr/sbin/vcontext
* //usr/sbin/setattr
* //usr/sbin/ncontext
* //usr/sbin/exec-cd
* //usr/sbin/vmemctrl
* //usr/sbin/reducecap
* //usr/sbin/vdevmap
* //usr/sbin/vdlimit
* //usr/sbin/vlimit
* //usr/sbin/vsched
* //usr/sbin/vspace 
* //usr/sbin/vuname
* //usr/sbin/vserver-info
* //usr/sbin/vserver-stat
* //usr/sbin/vrsetup
* //usr/sbin/naddress
* //usr/lib64/liblzma.so.0
* ERROR: sys-libs/glibc-2.15-r3 failed (setup phase):
*   old __guard detected
* 
* Call stack:
*              ebuild.sh, line  93:  Called pkg_setup
*   glibc-2.15-r3.ebuild, line 175:  Called eblit-run 'pkg_setup'
*   glibc-2.15-r3.ebuild, line 161:  Called eblit-glibc-pkg_setup
*        pkg_setup.eblit, line 119:  Called die
* The specific snippet of code:
*               die "old __guard detected"
* 
* If you need support, post the output of `emerge --info '=sys-libs/glibc-2.15-r3'`,
* the complete build log and the output of `emerge -pqv '=sys-libs/glibc-2.15-r3'`.
* The complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.15---r3/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.15-r3/temp/die.env'.
* Working directory: '/var/tmp/portage/sys-libs/glibc-2.15-r3'
* S: '/var/tmp/portage/sys-libs/glibc-2.15-r3/work/glibc-2.15'

答案1

错误信息非常清楚。一些二进制文件仍在使用(非常)旧的符号。您必须重建与二进制文件关联的包。错误消息为您提供了这些二进制文件的列表。

现在您可以将二进制文件映射到一个包q file /bin/busybox(该命令需要 app-portage/portage-utils q)。

user@host # q file /usr/bin/q
app-portage/portage-utils (/usr/bin/q)

现在出现包:emerge -1 app-portage/portage-utils

答案2

正如您的emerge 输出中所述,问题是源自列出的软件包的旧SSP 防护。有几种方法可以解决该问题。谷歌搜索可以找到很多解决这个问题的人的案例。此案例看起来与您遇到的问题最相似:

http://forums.gentoo.org/viewtopic-p-6903712.html?sid=128bdb308c2cb096c464a197a5980936\

我将从这里开始,然后根据您的环境/设置研究具体细节。

相关内容