解决Linux安装或执行命令遇到无法加载lib错误

引言

我们在安装或执行某些程序的时候会经常遇到类似于"error while loading shared libraries: xxxx.so: cannot open shared object file: No such file or directory"这样的错误,这是因为系统中没有要安装或运行那个程序调用的lib文件导致的,只需要查找出对应的组件包安装即可。

文章目录

0×1.Ubuntu安装或执行软件出现无法加载lib文件解决方法

问题复现:

笔者安装的ubuntu版本是Ubuntu18.04,在使用下面的命令安装vCenter时出现了报错"./installer: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory",提示缺少"libgconf-2.so.4"这个lib组件:

					#执行安装程序,然后报错了
					qing@qingsword:~/vcsa-ui-installer/lin64$ sudo ./installer 
					./installer: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory

					#首先安装apt-file程序,用来查找"libgconf-2.so.4"属于哪个名
					qing@qingsword:~/vcsa-ui-installer/lin64$ sudo apt install apt-file
					
					#更新缓存
					qing@qingsword:~/vcsa-ui-installer/lin64$ sudo apt update
					
					#"libgconf-2.so.4"文件属于哪个包,在冒号前面的"libgconf-2-4"就是包名称
					qing@qingsword:~/vcsa-ui-installer/lin64$ apt-file search libgconf-2.so.4
					libgconf-2-4: /usr/lib/x86_64-linux-gnu/libgconf-2.so.4
					libgconf-2-4: /usr/lib/x86_64-linux-gnu/libgconf-2.so.4.1.5

					#安装对应包
					qing@qingsword:~/vcsa-ui-installer/lin64$ sudo apt install libgconf2-4

					#将程序提示的所有组件包都安装上后,再次执行程序,就不会报错了
					

0×2.CentOS安装或执行软件出现无法加载lib文件解决方法

问题复现:

在使用CentOS(或Redhat)安装软件时出现"./installer: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory"这样的报错信息,提示找不到"libXss.so.1"这个文件,下面是CentOS下查找"libXss.so.1"文件对应包名称的方法:

					#安装程序报错,缺少"libXss.so.1"
					[root@qingsword.com lin64]# ./installer 
					./installer: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

					#更新包缓存
					[root@qingsword.com lin64]# yum makecache

					#查找"libXss.so.1"属于哪个包
					[root@qingsword.com lin64]# repoquery --nvr --whatprovides libXss.so.1
					libXScrnSaver-1.2.2-6.1.el7

					#安装对应包
					[root@qingsword.com lin64]# yum install -y libXScrnSaver-1.2.2-6.1.el7

					#程序所有提示没有的lib文件,都可以使用上面方法查找到,然后逐个安装上,程序就不会报错了
					

PS.两种方法,都需要系统能够正常连接上软件仓库,才能实现在线自动安装。