使用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转换为另一个干净的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)
答案 0 :(得分: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行
然后再对所有这些图像库依赖项执行此操作。