检查一些依赖包的安装,通过yum来安装,如果Redhat5无法用yum,参考本人的
另一篇文章:RHEL5 利用 CentOS的yum 安装openssl gc++及Nginx
1.确保系统已经安装以下包:
# yum install libjpeg # yum install libjpeg-devel # yum install libpng # yum install libpng-devel # yum install libtiff # yum install libtiff-devel # yum install libungif # yum install libungif-devel # yum install freetype # yum install zlib
2.从http://downloads.jmagick.org/6.4.0/这个网址下载到最新版本
需要下载的文件有:
-rw-r--r-- 1 root root 11039859 07-19 15:20 ImageMagick-6.4.0-0.tar.gz -rw-r--r-- 1 root root 536311 07-19 15:14 jmagick-6.4.0-3.src.rpm -rw-r--r-- 1 root root 66773 07-19 15:14 jmagick-6.4.0-3.x86_64.rpm -rw-r--r-- 1 root root 533551 07-19 15:14 jmagick-6.4.0-src.tar.gz -rw-r--r-- 1 root root 138385 07-19 15:14 jmagick-debuginfo-6.4.0-3.x86_64.rpm -rw-r--r-- 1 root root 57238 07-19 15:15 jmagick-linux-6.4.0-Q16.tar.gz
3.安装ImageMagick
#tar zxvf ImageMagick-6.4.0-0.tar.gz #cd ImageMagick-6.4.0 #./configure --enable-shared --without-perl(如果不行就用./configure) #make #make install #make check
安装完成后会生成一个convert:
#find / -name convert #convert --version
根据查看的结果判断安装是否成功。
然后可以在命令行下试试是否能用convert命令
#convert -geometry 600x200 源文件.jpg 处理后文件.gif (格式转换)
4.安装JMagick
# yum install java( 注意:无论是否有自己的 JRE/JDK 感觉这个还是必须要有,否则安装 RPM 会提示找不到相关的 JAVA 库 ) ; # /usr/sbin/useradd –u 1000 –s /sbin/nologin jman (注意:安装 jmagick-src 的时候,如果没有这个 jman 帐号,会安 装出错);
# rpm –ivh jmagick-6.4.0-3.x86_64.rpm (如果是32位系统,安装# rpm –ivh jmagick-6.4.0-3.i386.rpm) # rpm –ivh jmagick-6.4.0-3.src.rpm # rpm –ivh jmagick-debuginfo-6.4.0-3.x86_64.rpm (32 位操作系统无相应的文件)
如果安装src出错:
[root@localhost ~]# rpm -ivh jmagick-6.4.0-3.src.rpm
error: cannot create %sourcedir /usr/src/redhat/SOURCES
则:
[root@localhost ~]# mkdir /usr/src/redhat
[root@localhost ~]# mkdir /usr/src/redhat/SOURCES
# tar zxvf jmagick-linux-6.4.0-Q16.tar.gz
把上面 tar.gz 解压出来的三个文件一个连接全部挪到 TOMCAT 的 BIN 目录
# mv *.jar /usr/local/tomcat6/bin # mv *.so /usr/local/tomcat6/bin
# tar zxvf jmagick-linux-6.4.0-Q16.tar.gz
把上面 tar.gz 解压出来的jar文件一个连接全部挪到 TOMCAT 的 lib 目录
# mv *.jar /usr/local/tomcat6/lib
为了防止出现“注意”中出现的问题
将tar后生成的so删除:
#rm -rf libJMagick.so #rm -rf libJMagick-6.4.0.so
注意:遇到一个比较诡异的问题,如果将so文件COPY一份放到/root下,tomcat启动后,web程序会报错:
java.lang.UnsatisfiedLinkError: /root/libJMagick.so: /root/libJMagick-6.4.0.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
或是:
java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo
这种错误的解决方法是:
删除/root/libJMagick-6.4.0.so: /root/libJMagick.so