linux – 通过rpm(zypper)编译和安装之间的区别

在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]

所以我使用以下方法重新配置和重新编译:

./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(因为它现在有效),但通常关于他的行为,因为我以某种方式看到过这种情况也会发生在其他场合.

解决方法

两种方法之间至少存在两种​​可能的差异原因:

> zypper负责依赖.因此,如果ImageMagick依赖于您没有的动态链接库,它将检索它,以便ImageMagick可以提供与该库相关的功能.在这种情况下,您自己编译的可执行文件现在应该可以使用ImageMagick及其依赖项.> zypper(AFAIK)不编译包,它只安装一个预编译的二进制文件.只有在编译时才需要能够编译特定功能的依赖项,通常是库的头部(-dev或-devel包).如果您没有它们,则可以省略configure以使用或多或少的详细程度启用编译功能.要安装它们,正确的命令似乎是:#zypper in -d imagemagick

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...