#crle -l /usr/local/bin/psed \
>; -l /usr/local/bin/pstruct \
>; -l /usr/local/share/man/man/c2ph.1 \
>; -l /usr/local/share/man/man/s2p.1
从此,就发生了灾难性的后果:
#crle
ld.so.1: ls:致命的: libc.so.1打开失败: 不是一个目录
被杀掉
#ls
ld.so.1: ls:致命的: libc.so.1打开失败: 不是一个目录
被杀掉
#cmd (任何命令都不行,除exit外)
#/sbin/shutdown -i5 -g0 -y (结果一样)
重启(来硬的!):
ld.so.1: mount:fatal: libc.s0.1: open failed: Not a directory
Killed
ld.so.1: /usr/bin/who: fatal: libc.so.1: open failed: Not a directory
....
结果都是一样!这下可惨了,启都启不动了.
不知还能不能救?实在没法,俺只好重装了.
我本来能用LD_LIBRARY_PATH解决链接这个问题的,但昨天看了crle的man页,想用上一用,没想到结果会是这样的惨!
在man中是这么说得:
-l dir
This option specifies a new default search directory
dir for ELF or AOUT objects. Multiple occurrences of
this option are permitted. The type of object applica-
ble to the search is specified by the preceding -t
option, or defaults to ELF.
告诉你解决办法,你不需要重新安装系统,只要用安装盘进入当用户模式:
1. boot cdrom -s
2. fsck /dev/dsk/c0t0d0s0 (取决于你的根盘)
3. mount -F ufs /dev/dsk/c0t0d0s0 /mnt
4. 执行crle命令该回来:crle -l /usr/lib
(/usr/lib是系统缺省路径!)
5. reboot
按照你的要求,是解决LD_LIBRARY_PATH问题,一般是因为你进行了setuid,导致LD_LIBRARY_PATH无效了,这时你需要的是增加信任路径,所以应该执行crel -s /opt/oracle/product/8.1.7/lib 命令,其中/opt/oracle/product/8.1.7/lib是LD_LIBRARY_PATH的环境值,同时最好在执行crle增加信任路径时,不要丢掉原来系统的信任路径,所以应该执行crle -s "系统原有路径" -s “新增加路径”
1。用光盘引导系统
2。用fsck 修复系统
3。把/以及/usr 、/var下的文件系统mount到一个临时点(一定要把/usr和/var下的文件系统也mount上,否则这些目录下什么都看不到)
4。删除/var/ld目录下的配置文件
系统本来是没有这个配置文件的,一旦用了crle命令,则会在/var/ld中创建一个配置文件;以后,当系统找动态连接库时,就需要根据这个配置文件中设置的路径来搜索。简便的方法就是把此配置文件删除。
阅读(1252) | 评论(0) | 转发(0) |