文档 · 2023年2月3日 0

xray: error while loading shared libraries: libpcap.so.0.8: cannot open shared object file: No such file or directory

系统环境:Centos7

现象:运行xray时报错xray: error while loading shared libraries: libpcap.so.0.8: cannot open shared object file: No such file or directory

解决办法:

1.检查libpcap是否存在:

[root@server]# locate libpcap| grep "/usr/lib64/"
/usr/lib64/libpcap.so
/usr/lib64/libpcap.so.1
/usr/lib64/libpcap.so.1.5.3
......

2.以上动态库如果存在,直接建立符号链接即可,如下:

[root@server ]# cd /usr/lib64/
[root@lib64]# ln -s libpcap.so.1.5.3 libpcap.so.0.8
[root@lib64]# xray version

____  ___.________.    ____.   _____.___.
\   \/  /\_   __   \  /  _  \  \__  |   |
 \     /  |    _  _/ /  /_\  \  /   |   |
 /     \  |    |   \/    |    \ \____   |
\___/\  \ |____|   /\____|_   / / _____/
      \_/       \_/        \_/  \/

Version: 1.9.4/fda88126/COMMUNITY

config (xray.yaml) not found, gen xray.yaml/module.xray.yaml/plugin.xray.yamlr

如果出现以上显示则正常,如果仍然报错请继续往下看

3.如果提示locate 命令找不到,需要安装相关软件包:

yum install mlocate -y

4.安装locate后继续文章第2步操作,如果没有找到libpcap.so,或者显示为空,需要自己安装一下:

#安装
yum install libpcap-devel
#更新库(过程较慢,会遍历系统目录树)
updatedb

5.更新好后重复第2步即可。

拓展:

updatedb 命令用来创建或更新 slocate/locate 命令所必需的数据库文件。

updatedb 命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。

slocate 本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

语法
updatedb(选项)
参数
  • -o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
  • -U<目录>:更新指定目录的slocate数据库;
  • -v:显示执行的详细过程。

以下实例检测一个未存在的文件 runoob.txt:

# locate runoob.txt   # 检索 runoob.txt,没有任何输出,表示没有该文件
# touch ./runoob.txt  # 添加文件 runoob.txt
# locate runoob.txt   # 再次检索 runoob.txt,依然没有该文件
# updatedb            # 更新 locate.db 数据库
# locate runoob.txt   # 再次数据库检索 runoob.txt,找到该文件
/root/runoob/runoob.txt

使用 -U 选项可以指定要更新 slocate 数据库的目录。

updatedb -U /root/runoob/
打赏