今天在linux上安装某个程序时报错
Preparing to install...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/libc.so.6': No such file
Launching installer...
...
其实也不算报错吧,因为这个安装包还是可以运行,只是看着不舒服…具体解决思路如下:
首先想到的是不是系统安装的时候没有装libc,于是
[root@localhost ~]# rpm -qa | grep libc
libcgroup-0.40.rc1-17.el6_7.x86_64
glibc-common-2.12-1.192.el6.x86_64
libcap-ng-0.6.4-3.el6_0.1.x86_64
libcom_err-1.41.12-22.el6.x86_64
libcurl-7.19.7-52.el6.x86_64
glibc-2.12-1.192.el6.x86_64
libcap-2.16-5.5.el6.x86_64
libcanberra-0.22-3.el6.x86_64
libcanberra-gtk2-0.22-3.el6.x86_64
glibc-devel-2.12-1.192.el6.x86_64
libcroco-0.6.2-5.el6.x86_64
glibc-headers-2.12-1.192.el6.x86_64
libcdio-0.81-3.1.el6.x86_64
可以看到是安装libc的,并且如果没有这个动态库的话,很多非系统命令将不能使用。
接着想到的是查询系统中这个libc.so.6文件到底在哪
[root@localhost ~]# find / -name libc.so.6
/lib64/libc.so.6
这才发现因为是64位系统,所以这个文件以及其他库文件都放在了lib64/这个文件夹下面。于是觉得给/lib64/libc.so.6建立一个链接,应该可以解决问题
sudo ln /lib64/libc.so.6 /lib/libc.so.6
此时lib/文件夹下这个文件信息
lrwxrwxrwx. 2 root root 12 May 18 09:02 libc.so.6 -> libc-2.12.so
再次执行安装包,还是会出现同样的错误,于是换成软链接
sudo ln -s /lib64/libc.so.6 /lib/libc.so.6
此时lib/文件夹下这个文件信息
lrwxrwxrwx. 1 root root 16 May 19 00:42 libc.so.6 -> /lib64/libc.so.6
安装包这次就可以正确执行了,关于为什么硬链接不起作用,还需要更深地看看软硬链接的区别。