【发布时间】:2020-07-08 07:24:32
【问题描述】:
我的工作提供了一个设置,但更改配置的能力有限。我们有一个非标准配置,其中包括安装在特殊目录中的 ImageMagick 7。它有效,只要我使用目录的特殊路径,我就可以毫无问题地运行 identify 和 convert。
它安装在一个包含许多其他内容的包中。整个软件包设置为安装在客户机器上。它已经工作了多年,但一位客户希望将它安装在 AWS Centos7 机器上,并且除了 Imagemagick 之外,它大部分都可以工作。
在调用identify 或convert 时出现此错误
{package_name_removed}/vendor/imagemagick/CentOS6/bin/identify: error while loading
shared libraries: libMagickCore-7.Q16HDRI.so.5: cannot open shared object file: No such
file or directory
libMagickCore-7.Q16HDRI.so.5 存在于CentOS7/lib 目录中。
我可以通过使用LD_LIBRARY_PATH 环境变量来解决这个问题。但这需要更改软件包安装,而这是无法做到的。如果没有 LD_LIBRARY_PATH 环境变量,我们无法理解为什么它可以在非 AWS 堆栈上的 Centos7 上工作。不知何故,可执行二进制文件能够在没有LD_LIBRARY_PATH 的情况下找到libMagickCore-7.Q16HDRI.so.5,并且“不知何故”在 AWS Centos7 中不起作用
我无法使用不同的标志重新编译 ImageMagick,我无法添加 LD_LIBRARY_PATH,我无法创建符号链接,因为所有这些都需要更改我们的包,而这是不可能的。
如果我在干净的 AWS Centos7 映像中安装 ImageMagick,那么它可以完美运行。
我需要知道 AWS Centos7 映像上的哪些不同之处可能会阻止 Imagemagick 在未设置 LD_LIBRARY_PATH 的情况下找到 libMagickCore-7.Q16HDRI.so.5 文件。
我知道这是一个很长的机会,但某个地方的某个人可能会发表评论,可能会导致答案
【问题讨论】:
标签: imagemagick centos7