【发布时间】:2012-01-20 00:45:39
【问题描述】:
我刚刚安装了Passenger 3.0.11 和nginx 并得到了这个错误:
启动 nginx:/opt/nginx/sbin/nginx:加载共享库时出错:libpcre.so.0:无法打开共享对象文件:没有这样的文件或目录
【问题讨论】:
标签: nginx ruby-on-rails-3.1 passenger
我刚刚安装了Passenger 3.0.11 和nginx 并得到了这个错误:
启动 nginx:/opt/nginx/sbin/nginx:加载共享库时出错:libpcre.so.0:无法打开共享对象文件:没有这样的文件或目录
【问题讨论】:
标签: nginx ruby-on-rails-3.1 passenger
我遇到了同样的错误,我通过运行 sudo ldconfig 解决了这个问题。
【讨论】:
执行以下命令并重新启动服务器。
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
【讨论】:
消息的意思是它所说的。 nginx 可执行文件被编译为期望 PCRE(Perl 兼容的正则表达式)共享库在 LD_LIBRARY_PATH 上的某处可用或在 /etc/ld.so.conf 或任何适用于您的操作系统的等效库定位机制中指定,但它找不到图书馆。
您将需要安装 PCRE - 或配置您的环境,以便 nginx 将查找安装它的 PCRE 库。
【讨论】:
LD_LIBRARY_PATH 环境变量并尝试再次运行。如果可行,那么您需要调查/etc/ld.so.conf。如果还是不行,那么你需要检查Ruby是32位的,PCRE是64位的,或者Ruby是64位的,PCRE是32位的。混合物不起作用。如果您有混合使用,请重新安装其中一种产品的正确版本(bittiness),但单独的 PCRE 比 Ruby 及其扩展更简单。使用file 和ldd 分析二进制文件和共享库。
libssl 和libcrypto。小心放置 -Bstatic 和 -Bshared 没有帮助。
建议很少,我已经解决了我遇到的问题。
ldconfig -v 检查是否已更新
.bash_profile 中添加LD_LIBRARY_PATH 并使用. . bash profile 刷新。updatedb 刷新库列表。【讨论】:
只需重新安装 h5py conda,为我解决了
【讨论】:
我在为我的 Linux 服务器安装 ClamAV,防病毒软件后遇到了同样的错误。
[root@10 ~]# yum install clamav clamav-db clamd -y
Loaded plugins: aliases, changelog, kabi, presto, product-id, refresh-packagekit, security, subscription-manager, tmprepo, verify,
: versionlock
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package clamav.x86_64 0:0.100.3-1.el6 will be installed
--> Processing Dependency: libjson-c.so.2()(64bit) for package: clamav-0.100.3-1.el6.x86_64
---> Package clamav-db.x86_64 0:0.100.3-1.el6 will be installed
---> Package clamd.x86_64 0:0.100.3-1.el6 will be installed
--> Running transaction check
---> Package json-c.x86_64 0:0.11-13.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================
Installing:
clamav x86_64 0.100.3-1.el6 base 1.3 M
clamav-db x86_64 0.100.3-1.el6 base 150 M
clamd x86_64 0.100.3-1.el6 base 243 k
Installing for dependencies:
json-c x86_64 0.11-13.el6 base 27 k
Transaction Summary
====================================================================================================================================
Install 4 Package(s)
Total download size: 152 M
Installed size: 154 M
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 152 M
(1/4): clamav-0.100.3-1.el6.x86_64.rpm | 1.3 MB 00:00
(2/4): clamav-db-0.100.3-1.el6.x86_64.rpm | 150 MB 00:01
(3/4): clamd-0.100.3-1.el6.x86_64.rpm | 243 kB 00:00
(4/4): json-c-0.11-13.el6.x86_64.rpm | 27 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------
Total 100 MB/s | 152 MB 00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : json-c-0.11-13.el6.x86_64 1/4
/sbin/ldconfig: libraries libpcre.so.0 and libpcre.so.1 in directory /lib64 have same soname but different type.
Installing : clamav-db-0.100.3-1.el6.x86_64 [############################# ] 2/4
Installing : clamav-db-0.100.3-1.el6.x86_64 2/4
Installing : clamav-0.100.3-1.el6.x86_64 3/4
Installing : clamd-0.100.3-1.el6.x86_64 4/4
Verifying : clamd-0.100.3-1.el6.x86_64 1/4
Verifying : clamav-0.100.3-1.el6.x86_64 2/4
Verifying : json-c-0.11-13.el6.x86_64 3/4
Verifying : clamav-db-0.100.3-1.el6.x86_64 4/4
Installed:
clamav.x86_64 0:0.100.3-1.el6 clamav-db.x86_64 0:0.100.3-1.el6 clamd.x86_64 0:0.100.3-1.el6
Dependency Installed:
json-c.x86_64 0:0.11-13.el6
Complete!
[root@10 ~]#
[root@10 ~]# grep: error while loading shared libraries: libpcre.so.0: wrong ELF class: ELFCLASS32
grep: error while loading shared libraries: libpcre.so.0: wrong ELF class: ELFCLASS32
[root@10 ~]# grep: error while loading shared libraries: libpcre.so.0: wrong ELF class: ELFCLASS32
后来我发现下面的库被 /lib64 删除了
libjson-c.so.2.0.1
libjson.so.0.1.0
libpcre.so.0 -> libpcre.so.0.0.1
我从其他服务器复制了这些并卸载了 ClamAV。
Running Transaction
Erasing : clamd-0.100.3-1.el6.x86_64 1/3
Erasing : clamav-0.100.3-1.el6.x86_64 2/3
warning: /etc/freshclam.conf saved as /etc/freshclam.conf.rpmsave
Erasing : clamav-db-0.100.3-1.el6.x86_64 3/3
Verifying : clamd-0.100.3-1.el6.x86_64 1/3
Verifying : clamav-0.100.3-1.el6.x86_64 2/3
Verifying : clamav-db-0.100.3-1.el6.x86_64 3/3
Removed:
clamav.x86_64 0:0.100.3-1.el6 clamav-db.x86_64 0:0.100.3-1.el6 clamd.x86_64 0:0.100.3-1.el6
Complete!
sending incremental file list
libjson-c.so.2.0.1
libjson.so.0.1.0
libpcre.so.0 -> libpcre.so.0.0.1
【讨论】:
这是一篇旧帖子,但希望对某人有用。
我试图在 Amazon-Linux 2 上安装/启动旧版本的 NGINX 并遇到此错误。
NGINX 期待 libpcre.so.0,但该库在 Amazon-Linux 2 上不可用。
解决方案
find / -name libpcre.so* 搜索了更高版本的libpcre.so
libpcre.so.1 符号链接到libpcre.so.1.2.0 在/usr/lib64/
libpcre.so.1.2.0 的新符号链接,并使用ln -s libpcre.so.1.2.0 libpcre.so.0 将其命名为libpcre.so.0
【讨论】: