【问题标题】:Imagemagick 7 on AWS Centos7 cannot find libraryAWS Centos7 上的 Imagemagick 7 找不到库
【发布时间】:2020-07-08 07:24:32
【问题描述】:

我的工作提供了一个设置,但更改配置的能力有限。我们有一个非标准配置,其中包括安装在特殊目录中的 ImageMagick 7。它有效,只要我使用目录的特殊路径,我就可以毫无问题地运行 identifyconvert

它安装在一个包含许多其他内容的包中。整个软件包设置为安装在客户机器上。它已经工作了多年,但一位客户希望将它安装在 AWS Centos7 机器上,并且除了 Imagemagick 之外,它大部分都可以工作。

在调用identifyconvert 时出现此错误

 {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


    【解决方案1】:

    啊!发现了我们的问题。在打包所有组件时,ImageMagick 使用库的硬编码路径进行编译。这意味着路径以/home/user_logged_in_when_compiling_imagemagick 开头。在客户的服务器上,该软件包使用不同的主目录安装,因此失败。

    呸!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2011-05-29
      相关资源
      最近更新 更多