加载共享库时出错:'libpcre.so.0:无法打开共享对象文件:没有这样的文件或目录'

use*_*798 23 passenger nginx ruby-on-rails-3.1

我刚刚安装了Passenger 3.0.11和nginx并得到了这个错误:

启动nginx:/ opt/nginx/sbin/nginx:加载共享库时出错:libpcre.so.0:无法打开共享对象文件:没有这样的文件或目录

小智 68

我得到了同样的错误,我通过运行修复了问题sudo ldconfig.

  • 我在乘客安装之前手动安装了PCRE(尝试用该版本的乘客解决另一个错误)并在尝试启动nginx时出现此错误."sudo ldconfig"对我也很有帮助.非常感谢! (3认同)

Shi*_*Sah 7

执行以下命令并再次重启服务器.

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 5

这条消息意味着它所说的.该nginx可执行文件编译成期望PCRE(Perl兼容的正则表达式)共享库提供某处LD_LIBRARY_PATH或在指定的/etc/ld.so.conf或任何等价库定位机制适用于您的操作系统,并且它不能找到库.

您需要安装PCRE - 或配置您的环境,以便nginx查找安装它的PCRE库.

  • @redroot:在短期内(为了使其工作),您可以将安装了PCRE的目录添加到`LD_LIBRARY_PATH`环境变量中,然后再次尝试运行.如果可行,那么你需要调查`/ etc/ld.so.conf`.如果它不起作用,那么你需要检查Ruby是32位还是PCRE是64位,还是Ruby是64位还是PCRE是32位.混合物不起作用.如果你有混合物,重新安装其中一个产品的正确版本(bittiness),但仅PCRE比Ruby及其扩展更简单.使用`file`和`ldd`来分析二进制文件和共享库. (2认同)