代码改变世界

freebsd手工安装ImageMagick

2013-02-27 15:53  好动的树懒  阅读(643)  评论(0编辑  收藏  举报
重新安装了freebsd9.0 升级了ports之后,项目的fcgi脚本用到的ImageMagick版本也升级了,装了6.8的版本。之后问题来了
查看apache的错误日志,错误如下。
Share object "libMagick++.so.5" not found,reuired by "chaidoor.fcgi"/usr/lib/libstdc++.so.6: version GLIBCXX_3..4.11 require by /usr/www/chaidoor/htdocs/fcgi-bin/chaidoor.fcgi not found
 
解决方法如下:
1、按照错误提示应该是库文件的问题查看lib库中的libMagick++ 版本
hsb# cd /usr/local/lib
hsb# ll libMagi*
-rw-r--r--  1 root  wheel   3574694 Jan 24 20:29 libMagick++.a
-rwxr-xr-x  1 root  wheel      2084 Jan 24 20:29 libMagick++.la
lrwxr-xr-x  1 root  wheel        16 Jan 24 20:29 libMagick++.so -> libMagick++.so.6
-rwxr-xr-x  1 root  wheel   2301698 Jan 24 20:29 libMagick++.so.6
-rw-r--r--  1 root  wheel  14854922 Jan 24 20:29 libMagickCore.a
-rwxr-xr-x  1 root  wheel      2048 Jan 24 20:29 libMagickCore.la
lrwxr-xr-x  1 root  wheel        18 Jan 24 20:29 libMagickCore.so -> libMagickCore.so.6
-rwxr-xr-x  1 root  wheel   9646493 Jan 24 20:29 libMagickCore.so.6
-rw-r--r--  1 root  wheel   2825360 Jan 24 20:29 libMagickWand.a
-rwxr-xr-x  1 root  wheel      2080 Jan 24 20:29 libMagickWand.la
lrwxr-xr-x  1 root  wheel        18 Jan 24 20:29 libMagickWand.so -> libMagickWand.so.6
-rwxr-xr-x  1 root  wheel   1967555 Jan 24 20:29 libMagickWand.so.6
看到是由于库文件版本太高。可以通过降低软件版本解决。可以通过把ports倒退回旧的版本,也可以下载低版本的ImageMagick手动安装。第一种方法太麻烦,也没必要。
在网上下了一个ImageMagick-6.7.9-4 的版本。
 

1、通过命令  tar xzvf ImageMagick-6.7.9-4.tar.gz 解压

2、接下来进入解压文件目录,首先配置环境,通过如下命令

   ./configure --prefix=/usr/local --enable-share --enable-static         //prefix参数代表安装路径,freebsd默认安装路径是 /usr/local

3、 make install 命令 (这个命令在有些系统上可能需要超级用户权限)

安装完成:

hsb# cd /usr/local/lib
hsb# ll libMagi*
-rw-r--r--  1 root  wheel   3574694 Jan 24 20:29 libMagick++.a
-rwxr-xr-x  1 root  wheel      2084 Jan 24 20:29 libMagick++.la
lrwxr-xr-x  1 root  wheel        16 Jan 24 20:29 libMagick++.so -> libMagick++.so.5
-rwxr-xr-x  1 root  wheel   2301698 Jan 24 20:29 libMagick++.so.5
-rw-r--r--  1 root  wheel  14854922 Jan 24 20:29 libMagickCore.a
-rwxr-xr-x  1 root  wheel      2048 Jan 24 20:29 libMagickCore.la
lrwxr-xr-x  1 root  wheel        18 Jan 24 20:29 libMagickCore.so -> libMagickCore.so.5
-rwxr-xr-x  1 root  wheel   9646493 Jan 24 20:29 libMagickCore.so.5
-rw-r--r--  1 root  wheel   2825360 Jan 24 20:29 libMagickWand.a
-rwxr-xr-x  1 root  wheel      2080 Jan 24 20:29 libMagickWand.la
lrwxr-xr-x  1 root  wheel        18 Jan 24 20:29 libMagickWand.so -> libMagickWand.so.5

-rwxr-xr-x  1 root  wheel   1967555 Jan 24 20:29 libMagickWand.so.5

 

延伸:freebsd手动安装软件方法
freebsd手动安装软件步骤:
1、下载需要的软件包,通常为tar.gz tar.bz结尾文件,解压。
2、进入解压文件夹用 ./configure …… 配置安装参数,路径等。
3、make install
freebsd通过port和pkg_add 安装的软件默认位置为/usr/local,软件的头文件、类库会安装在/usr/local/include 和 /usr/local/lib 下。安装的软件的文件目录和 /usr/local 下的文件目录基本相同。看下面的例子——把文件安装到其他位置,查看安装软件的文件目录构成:
安装过程和上面一样只是第二部的配置不同
./configure --prefix=/opt/bokee/ImageMagick --enable-share --enable-static  //文件安装位置为/opt/bokee/ImageMagick
安装完成后。
%su root
Password:
hsb# cd /opt/bokee/ImageMagick/
hsb# ls
bin    etc    include    lib    share            //对比/usr/local下的文件,发现这些文件目录/usr/local下都有,                                                  这就是为什么软件的头文件、类库会安装在/usr/local/include 和 /                                                   usr/local/lib 下的原因。
hsb# cd lib/
hsb# ls
ImageMagick-6.7.9    libMagickCore.a        libMagickWand.la
libMagick++.a        libMagickCore.la    libMagickWand.so
libMagick++.la        libMagickCore.so    libMagickWand.so.5
libMagick++.so        libMagickCore.so.5    pkgconfig
libMagick++.so.5    libMagickWand.a
hsb#
 
参考:http://blog.csdn.net/nash603/article/details/6102615