0

使用 gnu "patch" 成功将补丁应用到 GraphicsMagick 后,我执行了 configure、make、make install 并使用 fpm 创建 rpm,我将其安装在干净的 VM 上,但出现错误:

$gm -version gm:加载共享库时出错:libtiff.so.5:无法打开共享对象文件:没有这样的文件或目录

构建步骤:

./configure --prefix=/usr --with-modules=yes --with-png --with-tiff --with-jpeg --with-gslib=/usr/local/share/ghostscript/9.20/lib --enable-shared=no --enable-static=no

make

make DESTDIR=/home/ec2-user/GM/tmp/project/ install

fpm -s dir -t rpm -C tmp/project --name GraphicsMagick --version 1.3.25 --iteration 4 --description "GraphicsMagick 1.3.25 on redhat 6.8" .

然后,将 rpm scp 到另一个干净的 VM 并将其安装为:

sudo rpm -ivh GraphicsMagick-1.3.25-4.x86_64.rpm

另外,我是否还需要构建所有必需的库,如 tiff、png jpeg?

这也让我想问:GraphicsMagick 1.3.25 是否支持 libtiff 4.0.7 ?

$ ldd /usr/bin/gm
    linux-vdso.so.1 =>  (0x00007ffdc5bef000)
    libtiff.so.5 => not found
    libjpeg.so.9 => not found
    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003b90c00000)
    libz.so.1 => /lib64/libz.so.1 (0x00000033e9000000)
    libm.so.6 => /lib64/libm.so.6 (0x00000033e9400000)
    libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00000035f9400000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00000033e8400000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000033eac00000)
    libc.so.6 => /lib64/libc.so.6 (0x00000033e8000000)
    librt.so.1 => /lib64/librt.so.1 (0x00000033e8c00000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00000033e8800000)
    /lib64/ld-linux-x86-64.so.2 (0x00000033e7c00000)
4

1 回答 1

1

如果你在 rhel/centos 6 上构建它,它可以通过这种方法传输到另一个 rhel/centos 6 盒子。您的问题可能是依赖关系,重复正确使用 fpm 的“-d”标志,并使用 yum(而不是 rpm)安装。

在您的构建框上使用rpm -q --whatprovides来回溯并找出 rpm 提供该库的内容。例子:

rpm -q --whatprovides /usr/lib64/libxml2.so.2
libxml2-2.7.6-21.el6_8.1.x86_64

所以我知道我应该添加-d libxml2到我的 fpm 行

然后对所有这些图像库依赖项再次执行此操作。

于 2017-03-30T20:39:03.487 回答