rsyslogd 报错找不到 libgcc_s.so.1 怎么办?

rsyslog 找不到 libgcc_s.so.1 是动态链接器搜索路径问题:确认库文件存在、把它所在目录加入 ld.so.conf 并运行 ldconfig,或安装 libgcc 包。本文给出完整排查步骤。

最佳实践
rsyslogd 报错找不到 libgcc_s.so.1 怎么办?封面

问题本质:libgcc_s.so.1 是 GCC 运行时库,rsyslog 启动时报找不到它,说明库文件缺失或不在动态链接器的搜索路径里**。按"找文件 → 配路径 → 刷新缓存"三步走即可解决。**

第一步:确认库文件是否存在

find / -name libgcc_s.so.1 2>/dev/null

常见位置:

  • Debian/Ubuntu:/lib/x86_64-linux-gnu/libgcc_s.so.1
  • RHEL/CentOS:/usr/lib64/libgcc_s.so.1

如果完全找不到,说明没装,直接安装:

# Debian/Ubuntu
sudo apt install libgcc-s1

# RHEL/CentOS
sudo yum install libgcc

第二步:把目录加入搜索路径

库存在但仍报错,说明目录不在链接器配置里。检查 /etc/ld.so.conf/etc/ld.so.conf.d/

grep -r "x86_64-linux-gnu" /etc/ld.so.conf /etc/ld.so.conf.d/

缺失则添加一个配置文件:

echo "/lib/x86_64-linux-gnu" | sudo tee /etc/ld.so.conf.d/libgcc.conf

第三步:刷新链接器缓存并重启

sudo ldconfig
sudo systemctl restart rsyslog

ldd $(which rsyslogd) | grep libgcc 验证依赖能否解析到。

容器/精简镜像场景

Alpine 等精简镜像没有 libgcc(musl 体系),从源码编译或拷贝二进制时会踩这个坑;解决办法是装包(apk add libgcc)或改用与镜像匹配的安装方式。

观测云对照

少一层依赖少一类故障。 运维代理自身的运行环境依赖也是故障源。观测云 DataKit 以单二进制分发、依赖极少,安装即跑,基本不会遇到这类共享库缺失问题;主机上已有的 rsyslog 日志也可由 DataKit 直接采集。

常见问题(FAQ)

Q:ldconfig 之后还是报错?
A:确认 ldconfig -p | grep libgcc_s 能列出该库;列不出说明配置文件没生效,检查文件后缀必须是 .conf

Q:不想改系统配置,能临时指定吗?
A:可以,LD_LIBRARY_PATH=/lib/x86_64-linux-gnu rsyslogd,但只适合临时验证,正式服务还是走 ld.so.conf。

Q:为什么以前好好的突然报错?
A:常见于系统升级后库路径变化、或有人清理了"看似无用"的包,先按第一步确认文件还在不在。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台