找不到 imagemagick libMagickCore.so.2

stm*_*mpy 6 debian imagemagick

我有两台我们在工作中使用的 debian 服务器,一台是我们的开发服务器,另一台是我们的生产服务器。我试图让 imagemagick 在两台服务器上都能正常工作,由于某种原因,生产服务器运行 imagemagick 很好,但开发服务器似乎不想。

在我输入的两台服务器上

convert --version
Run Code Online (Sandbox Code Playgroud)

并得到了这个回应作为回报

生产:

Version: ImageMagick 6.6.0-4 2012-04-24 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: OpenMP
Run Code Online (Sandbox Code Playgroud)

发展:

convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我对两台服务器都做了一个 dpkg 来检查版本,我得到了以下信息

生产:

ii  imagemagick                         8:6.6.0.4-3+squeeze2         image manipulation programs
ii  libmagickcore3                      8:6.6.0.4-3+squeeze2         low-level image manipulation library
ii  libmagickcore3-extra                8:6.6.0.4-3+squeeze2         low-level image manipulation library - extra codecs
ii  libmagickwand3                      8:6.6.0.4-3+squeeze2         image manipulation library
ii  php5-imagick                        3.0.0~rc1-1                  ImageMagick module for php5
Run Code Online (Sandbox Code Playgroud)

发展:

ii  imagemagick                         8:6.6.0.4-3+squeeze2         image manipulation programs
ii  libmagickcore3                      8:6.6.0.4-3+squeeze2         low-level image manipulation library
ii  libmagickcore3-extra                8:6.6.0.4-3+squeeze2         low-level image manipulation library - extra codecs
ii  libmagickwand3                      8:6.6.0.4-3+squeeze2         image manipulation library
ii  php5-imagick                        3.0.0~rc1-1                  ImageMagick module for php5
Run Code Online (Sandbox Code Playgroud)

我在整个操作系统中寻找 libMagickCore.so.2 并找不到它,我确实在两台服务器上都找到了这些文件。

生产:

lrwxrwxrwx  1 root root    22 May  2 14:32 libMagickCore.so.3 -> libMagickCore.so.3.0.0
-rw-r--r--  1 root root  2.3M Apr 24 15:44 libMagickCore.so.3.0.0
lrwxrwxrwx  1 root root    22 May  2 14:32 libMagickWand.so.3 -> libMagickWand.so.3.0.0
-rw-r--r--  1 root root  1.1M Apr 24 15:44 libMagickWand.so.3.0.0
Run Code Online (Sandbox Code Playgroud)

发展:

lrwxrwxrwx  1 root root    22 May  2 14:35 libMagickCore.so.2 -> libMagickCore.so.3.0.0
lrwxrwxrwx  1 root root    22 May  2 14:30 libMagickCore.so.3 -> libMagickCore.so.3.0.0
-rw-r--r--  1 root root  2.3M Apr 24 15:44 libMagickCore.so.3.0.0
lrwxrwxrwx  1 root root    22 May  2 14:30 libMagickWand.so.3 -> libMagickWand.so.3.0.0
-rw-r--r--  1 root root  1.1M Apr 24 15:44 libMagickWand.so.3.0.0
Run Code Online (Sandbox Code Playgroud)

我手动将 libMagickCore.so.2 添加到开发服务器上,看看它是否有效,但它没有。

我从开发服务器中清除了所有 imagemagick 并重新安装了它,但仍然没有。我运行了 ldconfig,它会为第 3 版而不是第 2 版创建链接。我什至重新启动了机器,在两台机器上都进行了更新/升级,但我无能为力。有人对我有其他想法吗?

太感谢了!

- 编辑 -

运行命令

which convert
Run Code Online (Sandbox Code Playgroud)

产生这些输出

生产

/usr/bin/convert
Run Code Online (Sandbox Code Playgroud)

发展

/usr/local/bin/convert
Run Code Online (Sandbox Code Playgroud)

所以......这最终成为我的问题......我从我的开发服务器中删除了 /usr/local/bin 中的转换,然后它就可以工作了。

foo*_*ser 8

我很高兴你解决了这个问题。为了帮助处于类似情况的其他人,我将把它留在这里:

要在本地查找库:

# updatedb
# locate libMagickCore
Run Code Online (Sandbox Code Playgroud)

要从包管理器中查找库:

# apt-file search  libMagickCore
Run Code Online (Sandbox Code Playgroud)

查找系统是否可以找到您的库(是否在路径中)

# ldconfig -p | grep -i nameoflibrary
Run Code Online (Sandbox Code Playgroud)

如果您的库不在列表中,但在系统上,您可以添加它:

# ldconfig -n /path/toyournew/library/
Run Code Online (Sandbox Code Playgroud)

将其永久添加到路径中:

# /etc/ld.so.conf.d/libc.conf
Run Code Online (Sandbox Code Playgroud)

无论是哪个库,这应该足以解决未来的此类问题。