Linux 共享库加载失败?查这几点就够了
碰到 ./ndt: error while loading shared libraries 这种报错,从确认库文件是否存在、配置 LD_LIBRARY_PATH,到装包、ldd 查依赖、ldconfig 重建缓存,一次说清排查顺序。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-07-23 19:15:40 Linux OpenWrt lspci pciutils 诊断脚本
在 Linux 或 OpenWrt 下敲 lspci,直接给一个“lspci: not found”,这种情况经常遇到。多数人的第一反应是没装 pciutils,但有时候装完还是报错,或者装都装不上。尤其是 OpenWrt,问题根源往往不是缺包,而是设备压根没有 PCI 总线。
这篇文章把我踩过的几个坑和排查顺序理一下。
标准 Linux 发行版下,lspci 命令来自 pciutils 这个包。Debian/Ubuntu 直接:
sudo apt-get update && sudo apt-get install -y pciutils
CentOS/RHEL 用 yum:
sudo yum install -y pciutils
执行完一般就有了。如果没有新增其他奇怪配置,到这里问题就解决了。
但有一个地方很容易绕进去——装完还是“not found”。
这时候八成是 PATH 的问题。lspci 默认装在 /usr/sbin 下,这个路径不一定在普通用户的 PATH 里,尤其是一些最小化安装的发行版。可以用 echo $PATH 看一眼,没有的话临时 export 一下,或者写进 ~/.bashrc:
export PATH=$PATH:/usr/sbin
我碰到过好几回,装完 pciutils 就在 root 下跑,一换普通用户又报错,就是卡在这步。
嫌手动判断发行版麻烦的话,可以写个脚本让它自己检测。下面这个脚本会先看有没有 lspci,没有就根据 /etc/debian_version 或 /etc/redhat-release 来装对应的包。装完顺便打一下 lspci -v,确认能用。
#!/bin/bash
if ! command -v lspci &> /dev/null; then
echo "lspci未安装,正在安装..."
if [ -f /etc/debian_version ]; then
sudo apt-get update && sudo apt-get install -y pciutils
elif [ -f /etc/redhat-release ]; then
sudo yum install -y pciutils
else
echo "不支持的Linux发行版!"
exit 1
fi
else
echo "lspci已安装,版本信息:"
lspci -v
fi
OpenWrt 这边就得分情况了。它是一个裁剪得很小的嵌入式系统,默认根本不带 lspci。x86 架构的软路由之类的设备可以手动装上:
opkg update
opkg install pciutils
但多数人用的是 ARM 或者 MIPS 架构的路由器,这类设备物理上就没有 PCI 总线,装 pciutils 也没东西可列。这种情况下与其跟 lspci 死磕,不如直接换一整套替代命令去查硬件。
CPU 信息看 /proc/cpuinfo,内存用 free -m,内核模块用 lsmod。
需要看无线网卡的话,dmesg | grep -i wifi 可以翻内核启动日志,ifconfig -a 看网络接口有没有认出来,如果装了 iwinfo,直接 iwinfo 看无线详细信息。这些命令在大多数 OpenWrt 固件里都是现成的。
下面这个脚本我经常放在 OpenWrt 设备上,一次把关键硬件信息都捞出来:
#!/bin/sh
echo "=== CPU 信息 ==="
cat /proc/cpuinfo | grep -i "model name" || echo "无法获取CPU型号"
echo "\n=== 内存信息 ==="
free -m
echo "\n=== 网络接口 ==="
ifconfig -a | grep -E "Link|inet" || echo "未检测到网络接口"
echo "\n=== 已加载无线模块 ==="
lsmod | grep -i wireless || echo "未加载无线模块"
echo "\n=== 内核日志(无线相关) ==="
dmesg | grep -i wifi || echo "无线日志为空"
运行一遍,CPU、内存、网络接口和无线模块状态一目了然,比单条 lspci 给的信息更贴近嵌入式设备调试的实际需求。
平时遇到报错的情况,大概就这几类:没装 pciutils 的,按发行版把包装上就行;装完还报“not found”的,十有八九是 PATH 没带上 /usr/sbin,export 一下就通了;OpenWrt 上怎么折腾都没用的,先确认自己是不是 x86 设备,不是的话直接改用 /proc 和 dmesg 那套方案,别再纠结 lspci 了。另外偶尔也会有权限问题,普通用户跑 lspci 需要 sudo 或者切到 root。
对于嵌入式设备,/proc 文件系统和内核日志才是更可靠的硬件信息来源,不必过分依赖 PCI 工具。
线上排查的时候,这套组合命令往往比单装一个 lspci 实际得多。
碰到 ./ndt: error while loading shared libraries 这种报错,从确认库文件是否存在、配置 LD_LIBRARY_PATH,到装包、ldd 查依赖、ldconfig 重建缓存,一次说清排查顺序。
不讲概念,直接分享几个实际在服务器上查IP的命令,附带多网卡、脚本提取这些容易绊住的点。
本文深入剖析OpenWrt安装FFmpeg失败的常见原因,从软件源更新、插件缺失到存储不足和网络问题,提供`opkg update`、`df -h`等命令定位方法。详述强制安装依赖、手动编译等多种解决策略,并汇总问题与对策表格,助你快速恢复FFmpeg功能。
本文为您详细解析Ubuntu系统字体安装与调整的全过程,从图形化工具Font Manager到命令行操作,助您轻松驾驭自定义字体。更有GNOME Tweak Tool深度美化秘籍,提升视觉体验。附带等宽字体使用提示,避免终端显示问题,让您的Ubuntu界面焕然一新。
本文详尽阐述了在Linux服务器上部署SSL证书的全流程,涵盖证书获取、端口开放、Nginx与Apache服务器配置及验证等关键步骤,为数字信道披上安全之光。