imagemagick libMagickCore.so.2 未找到

imagemagick libMagickCore.so.2 未找到

我在工作中使用了 2 台 Debian 服务器,一台是开发服务器,另一台是生产服务器。我尝试让 imagemagick 在两台服务器上都运行,但出于某种原因,生产服务器可以很好地运行 imagemagick,但开发服务器似乎不想运行。

我在两台服务器上都输入了

convert --version

并得到了这个回应

生产:

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

发展:

convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory

我对两台服务器都进行了 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

发展:

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

我在整个操作系统中查找 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

发展:

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

我手动将 libMagickCore.so.2 添加到开发服务器上以查看是否可以工作,但没有成功。

我从开发服务器中清除了所有 imagemagick 并重新安装它,但仍然没有任何效果。我运行了 ldconfig,它会为版本 3 创建链接,但不会为版本 2 创建链接。我甚至重新启动了机器,在两台机器上都进行了更新/升级,但我还是不知道该怎么办。有人能给我其他想法吗?

太感谢了!

- 编辑 -

运行命令

which convert

产生了这些输出

生产

/usr/bin/convert

发展

/usr/local/bin/convert

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

答案1

我很高兴你解决了这个问题。为了帮助其他遇到类似情况的人,我在这里只留下这一点:

要在本地查找图书馆:

# updatedb
# locate libMagickCore

要从包管理器中找到该库:

# apt-file search  libMagickCore

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

# ldconfig -p | grep -i nameoflibrary

如果您的图书馆不在列表中,但在系统中,您可以添加它:

# ldconfig -n /path/toyournew/library/

将其永久添加到路径中:

# /etc/ld.so.conf.d/libc.conf

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

答案2

我听从了 ablackhat 的建议,这样做which convert表明我的开发服务器正在 /usr/local/bin 中查找 convert 可执行文件。我从该目录中删除了可执行文件,然后运行,which convert结果显示我的服务器现在正在使用 /usr/bin 中的可执行文件。当我运行convert --version/usr/bin/convert 时,一切都按预期运行。

相关内容