我最近升级到了 Linux Mint 22.1 Cinnamon,ImageMagick 脚本现在抛出一个错误:
magick: symbol lookup error: /usr/local/lib/libMagickCore-7.Q16HDRI.so.10: undefined symbol: TIFFFieldDataType, version LIBTIFF_4.0
我/usr/local/lib
注意到这libMagickCore-7.Q16HDRI.so.10
是一个指向的符号链接libMagickCore-7.Q16HDRI.so.10.0.0
我从 synaptic 安装的 ImageMagick 版本。我不记得我是否曾尝试从 synaptic 之外安装版本。
magick -version
Version: ImageMagick 7.1.0-43 Q16-HDRI x86_64 8718d6292:20220709 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): fontconfig freetype jbig jng jpeg lcms lzma pangocairo png tiff x xml zlib
Compiler: gcc (9.4)
magick -list format
TIFF* rw+ Tagged Image File Format (LIBTIFF, Version 4.5.1)
TIFF64* rw+ Tagged Image File Format (64-bit) (LIBTIFF, Version 4.5.1)
我已经安装libtiff-dev
libtiff5-dev
并libtiff6
在网上搜索此问题时,我随机尝试遵循以下建议conda uninstall libtiff
,但只返回
PackagesNotFoundError: The following packages are missing from the target environment:
- libtiff
如果您能提供任何关于如何解决此问题的想法,我们将不胜感激。
magick
该命令依赖于库这一事实libMagickCore-7.Q16HDRI.so.10
强烈表明您没有使用打包版本,即使它已安装,但很可能使用的是安装在中的版本/usr/local/bin
(与中的库匹配/usr/local/lib
)。您可以通过明确运行
/usr/bin/magick
而不是 来检查这一点magick
;如果您安装了适当的 ImageMagick 包,使用 中的库/usr/lib/x86_64-linux-gnu
(它们有不同的名称),这应该可以正常工作。但是 Linux Mint 只附带 ImageMagick 6,它没有该magick
工具,而是依赖于单独的命令(主要命令是convert
)。/usr/local/bin
要永久恢复到打包版本,请删除和中的版本/usr/local/lib
:当您这样做时,您可能想要检查
/usr/local/lib
和中是否有其他残留物/usr/local/bin
,并在适当的情况下清理它们。如果您依赖非打包版本的功能,则必须为更新的发行版重建它,或者将脚本调整为打包版本(特别是使用单独的命令而不是
magick
)。要从 Mint 安装 HDRI ImageMagick 包,请运行我通过首先卸载 imagemagick 解决了这个问题: 并从和中
sudo apt remove imagemagick
sudo apt purge imagemagick
删除所有与 imagemagick 相关的文件/usr/local/lib
/usr/local/bin
其次,按照 imagemagick 网站下载页面上的说明从源代码安装 imagemagick。