Seb*_*bas 31 linux symbolic-link centos6
我删除了一个关键的符号链接 - libc.so.6。我有它应该指向的文件,但是由于缺少链接,诸如ln或之类的基本命令wget将不再起作用。但是,echo或其他 Bash 内置函数可以工作。
我正在寻找一种方法来重新创建此符号链接。
nat*_*njo 58
您可以使用 ldconfig,它会重新创建符号链接:
# rm /lib/libc.so.6
rm: remove symbolic link `/lib/libc.so.6'? y
# ls -l /lib/libc*
ls: error while loading shared libraries: libc.so.6: cannot open shared object file:
# ldconfig
# ls -l /lib/libc*
[skip]
lrwxrwxrwx. 1 root root 12 May 11 07:59 /lib/libc.so.6 -> libc-2.12.so
Run Code Online (Sandbox Code Playgroud)
如您所见,刚刚对其进行了测试。
Mar*_*ick 44
CentOS 6 通常带有busybox一组静态链接的 Unix 工具,安装在/sbin. 你可以像这样运行它:
/sbin/busybox ln -s libc-2.12.so /lib/libc.so.6
Run Code Online (Sandbox Code Playgroud)
Den*_*ker 23
设置 LD_PRELOAD 以预加载相关库。我用 libpthread 试了一下,它似乎有效:
root@spirit:~# mv /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libpthread.so.0-bak
root@spirit:~# chattr
chattr: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
root@spirit:~# LD_PRELOAD=/lib/x86_64-linux-gnu/libpthread.so.0-bak chattr
Usage: chattr [-RVf] [-+=AaCcDdeijsSu] [-v version] files...
Run Code Online (Sandbox Code Playgroud)
小智 23
sln正是为了这个目的:当你不能使用常规 ln 时修复符号链接,因为你破坏了一个基本的符号链接。引用其手册页:
描述
Run Code Online (Sandbox Code Playgroud)The sln program creates symbolic links. Unlike the ln(1) program, it is statically linked. This means that if for some reason the dynamic linker is not working, sln can be used to make symbolic links to dynamic libraries.
您可以设置LD_LIBRARY_PATH变量以包含 real 所在的目录libc.so.6:
export LD_LIBRARY_PATH="/dir/for/libc.so.6/:$LD_LIBRARY_PATH"
Run Code Online (Sandbox Code Playgroud)
此外,执行ldconfig它以重新创建链接。这应该使命令起作用,以便您可以使用ln命令来修复您的系统。
另一种方法是通过 LiveCD 启动并在那里链接文件。
| 归档时间: |
|
| 查看次数: |
11027 次 |
| 最近记录: |