LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1646|回复: 13

求救:slackpkg带来的灾难

[复制链接]
发表于 2009-10-4 02:05:06 | 显示全部楼层 |阅读模式
第一次用slackpkg来升级软件包
看了下说明,可以在线升级软件和系统版本到CURRENT,于是配置升级
#slackpkg update
#slackpkg upgrade-all
以为这样就可以轻松升级了,,结果
一来直接Upgrading glibc-solibs-2.3.5-i486-2

Pre-installing package glibc-solibs-2.3.5-i486-2
接着就是:
rm: /lib/libc.so.6: version `GLIBC_2.4' not found (required by rm)
cp: /lib/libc.so.6: version `GLIBC_2.4' not found (required by cp)
....
....
....


....


...
我用pkginstall重新安装glibc-solibs也不行,缺少了库文件,,,什么都干不了,
进入/lib目录,发现libc.so.6->libc.so.2.3.5.incoming并没丢失,

不知所措,,第一次接触这类东东,请大哥哥大姐姐帮助。
发表于 2009-10-4 05:45:42 | 显示全部楼层
偶总是用自己写的脚本去检视和获取需要更新的包。然后按slack的更新说明按顺序进行更新。
回复 支持 反对

使用道具 举报

发表于 2009-10-4 06:29:59 | 显示全部楼层
你装的是哪个版本的 Slackware ?…… 我的机器上 glibc 的版本是 2.9……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-4 09:21:43 | 显示全部楼层
slackware 12.2

有人知道怎么解决吗?
回复 支持 反对

使用道具 举报

发表于 2009-10-4 09:35:23 | 显示全部楼层
首先,slackware有installpkg, upgradepkg, removekpkg三个单独的命令。

slackpkg 要先在/etc/slackpkg/mirrors中选择对应的升级站点(不要选官方的ftp,非常慢)。

你先用installpkg glibc-solib-* 重新安装这个包。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-4 09:53:58 | 显示全部楼层
不能重新安装...
因为cp , rm等工具用不了,
rm: /lib/libc.so.6: version `GLIBC_2.4' not found (required by rm)
cp: /lib/libc.so.6: version `GLIBC_2.4' not found (required by cp)
----------------------------------------------------------------------------------
我用安装光盘引导,,mount上硬盘,然后pkgtool安装glibc-solib-* 这个包,
重新引导系统:
出现::/sbin/agetty: relocation erro: /lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference
INIT: Id "c5" respawning too fast: disabled for 5 minutes
INIT: Id "c6" respawning too fast: disabled for 5 minutes
INIT: no more processes left in this runlevel
回复 支持 反对

使用道具 举报

发表于 2009-10-4 10:10:09 | 显示全部楼层
没有glibc的动态链接库,基本上什么也做不了,建议把安装盘找出来,重装一下basic的包。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-4 10:38:34 | 显示全部楼层
我逐渐排查,
#/lib/libc.so.6
发现我的glibc-solib的版本更新到2.7(原来安装的是更新包)(不解为什么下载下来的包是表明的2.3.5.:::在/var/cache/pakages下)
现在的问题就是新的版本指向了不同的的动态库...
而我现在只能用CD安装盘操作(这里的若干知识不会)
本想拷贝原来的2.3.5包,可是不知道怎么在光盘启动模式复制光盘上的东西,,,mount不上,hda1上只有引导系统...
只有想法把文件链接重新指定,,估计这接下来很烦琐,,,
我会随时更新情况的,,,如果有不懂的地方也来提问,望各位指点
回复 支持 反对

使用道具 举报

发表于 2009-10-4 14:28:53 | 显示全部楼层
12.2 里的glibc 就是2.7的。
11.0 glibc 2.3.6
10.2 glibc 2.3.5
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-4 21:36:36 | 显示全部楼层
嗯,后来才发现的。但最开始发现如libm.so.*指向的是2.3.5(不解,对slackpkg的一闪而过造成的后果无语)。
我cp了新的库后重新ln后就不再报错了。但还是有小问题,,,最后又仔细研究了一遍glibc-solibs-*的Slackbuild文件,,重新设置了一下,虽然基本恢复了动态库,但是仍然或多或少有小问题,,,最后不得不加载自动的安装脚本,把所有库重新编译安装了一遍。(本来想通过自己的努力解决的[虽然这也是自己的努力],但最后力不从心了,)

最终没能把完整的解决方案呈现给大家,和我一样的新手如果下次遇到类似的问题,请mail我,我会再次深入这个问题的。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表