解决Debian13报错缺少依赖libpcre3

实用教程 admin 4小时前 5次浏览 0个评论

介绍

之前我们写过一个解决Debian12报错缺少依赖libssl1.1 ,小白手贱又升级了Debian13……发现自己编译的nginx又跑不起来了……

错误如下:

nginx: error while loading shared libraries: libpcre.so.3: No such file or directory

错误原因

我的nginx 是用 PCRE v1(libpcre3,soname=libpcre.so.3) 编出来的;Debian 13 默认只带 PCRE2(libpcre2-…),于是动态链接器找不到 libpcre.so.3 就直接崩……

解决方案

一把梭

wget https://snapshot.debian.org/archive/debian/20230625T210322Z/pool/main/p/pcre3/libpcre3_8.39-15_amd64.deb
sudo apt install ./libpcre3_8.39-15_amd64.deb

稳妥方案

先试是否官方仓库还留着(有就一步到位):

apt update
apt install -y libpcre3

如果提示找不到包(Debian 13 很可能没有),就从 Debian 12(bookworm)拉一个只这一个包下来,做交叉安装(尽量安全):

# 1) 临时加 bookworm 源
echo 'deb [arch=amd64] http://deb.debian.org/debian bookworm main' 
  > /etc/apt/sources.list.d/bookworm-compat.list

# 2) 降低它的优先级,避免系统被回滚
cat >/etc/apt/preferences.d/pcre3.pref <<'EOF'
Package: *
Pin: release n=bookworm
Pin-Priority: 50

Package: libpcre3
Pin: release n=bookworm
Pin-Priority: 990
EOF

# 3) 更新并只安装 libpcre3
apt update
apt install -y -t bookworm libpcre3

如果只缺 libpcre.so.3,装完就会消失;若还缺别的(如 libssl.so.*libcrypto.so.*),按同样办法补齐对应版本。

注意事项

  • 这种办法 属于“手动拉旧库”,和之前 libssl1.1 的做法一样。短期能跑,长期可能有安全风险。
  • 如果 nginx 还缺其他旧库(比如 libssl.so.1.1libcrypto.so.1.1),也需要同样的办法装回来。
  • 更干净的办法是:要么改用 Debian 13 自带 nginx(基于 PCRE2),要么自己重编 xd-nginx 让它静态链接或用 PCRE2。

原来频道被人恶意举报……新电报频道|加入电报群
转载请注明原文链接:解决Debian13报错缺少依赖libpcre3
喜欢 (0)

您必须 登录 才能发表评论!