在openSUSE 11.1我下载,编译并安装ImageMagick :
wget ftp://.../pub/graphics/ImageMagick/ImageMagick-6.7.7-0.zip unzip ImageMagick-6.7.7-0.zip cd ImageMagick-6.7.7-0 ./configure --prefix=/usr/local/ImageMagick make make install
一切都很好,直到我发现JPG不支持:
identify -list format | grep -i jpg [nothing related to JPG returned]
所以我重新configuration和重新编译使用:
./configure --prefix=/usr/local/ImageMagick --with-jpeg=yes --with-jp2=yes make make install
但是这并没有改变。
我最终卸载:
make uninstall
并通过zypper安装:
zypper install ImageMagick
这个安装的版本6.4.3,现在它支持JPG:
identify -list format | grep -i jpg JPG* JPEG rw- Joint Photographic Experts Group JFIF format
有什么想法在这里发生了什么? 什么是可能的原因,这种ImageMagick能力不是从源代码编译,但在那里从rpm安装时有吗?
请注意,我不一定关心ImageMagick(因为它现在起作用),但通常关于他的行为方式,因为以某种方式,我也看到这种情况也发生在其他的ocasions。
这两种方法至less有两个可能的原因:
zypper负责依赖关系。 所以,如果ImageMagick依赖于你没有的dynamic链接库,它将检索它,以便ImageMagick可以提供与该库相关的function。 在这种情况下,自己编译的可执行文件现在应该可以安装ImageMagick及其依赖项了。
zypper(AFAIK)不编译这个包,它只安装一个预编译的二进制文件。 只有在编译时需要依赖才能编译特定的function,通常是库的头文件(-dev或-devel软件包)。 如果你没有它们, configuration可能会忽略启用该function或多或less的冗长。 要安装这些,正确的命令似乎是:
# zypper in -d imagemagick
看起来像在第二次configure其他选项后,忘了make clean / make mrproper 。