1/01/2008

CentOS 5.1 + RMagick works

昨天,我要在 CentOS 上面灌 RMagick。我 google 了一下,發現有位卧得罚先生寫關於 CentOS 下面安裝 RMagick 的辛酸跟血淚,洋洋灑灑六到七頁,最後成功了還不忘加句「CentOS Sucks」。我發現到 XDite 也又 twitterCENTOS 裝 rmagick ...困難重重....」,這讓我非常的好奇,一心想看看在 Fedora 跟 Ubuntu 安裝都是瞬殺的 RMagick ,到底在 CentOS 上面出了啥問題。結果發現這條路好漫長,大概搞了半天以上吧......結論其實很簡單

CentOS 預設 FreeType Lib 是爛掉的,重新 compile 即可。

一開始我想看看RubyWorks ,因為他們有懶人包一次包好所有 Ruby on Rails 的東西。我發現到他們網站上面 Optional Package 宣稱他們有包好 RMagick
rubygem-rmagick (librmagick-ruby in Debian/Ubuntu repository.) – interface between the Ruby programming language and the ImageMagick® and GraphicsMagick image processing libraries.
但是我在 RubyWorks 的 yum 中找不到,所以就當沒有這東西存在。然後,使用 yum 安裝 ImageMagick ,再用 gem 安裝 RMagick ,發現 CentOS ImageMagick 的版本太舊,RMagick 2.0 不支援。

下載最新的 IMageMagick ,然後用 gem 安裝 RMagick 看似沒問題,但是當我想測試一下,按下
ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;"
就發現有許多 Error 等著我。當我把這些 Error 放到網路上,結果發現沒有幾個回答。大部分都是叫我回去看 RMagick 的 Install Note

當然啦,別人叫我們看Install Note,就是代表「你並不了解這個東西」,所以我乖乖的看了一下我發現 RMagick 需要
  1. FreeType
  2. Ghostscript fonts
  3. JPEG
  4. PNG
  5. WMF
這幾個 Image Lib ,當我確認過 CentOS 都有安裝這些 Lib 之後,很可惜的,Error 一再的出現,就這樣陷入了一再重複的地獄。最後我從這個網頁發現到

CentOS 預設 FreeType Lib 是爛掉的。

這就是最後的解答。So,請下載 FreeType 的 Lib ,重新 compile ,然後 RMagick 就會成功。

以下是 Step by Step 安裝

我在一台乾淨的 CentOS 上面安裝成功過。下面安裝版本,CentOS 5.1 + gcc 4.1.2 + ImageMagick 6.3.7 + FreeType 2.3.5 + rmagick 2.0 或是 rmagick 1.15.12。

1. 安裝 GCC / G++
yum install gcc-c++ compat-gcc-32 compat-gcc-32-c++

2. Install 相關 lib
yum install glib glib2 zlib-devel libpng libjpeg libtiff ghostscript

3. 下載 FreeType 2.3.5 ,make

4. 下載 ImageMagick,make
你可以用 convert --version 確認是否安裝成功

5. gem i rmagick
你可以用
ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;"
確認是否安裝成功。

3 則留言:

xdite 提到...

你使用 ttf 會亂碼嗎?

我的楷體會爆掉,其他 ttf 老是陣亡。目前只有 ttc 才 work

thegiive 提到...

我只用 RMagick 作縮圖
沒有嵌字型的用途
給個範例讓我 try try

RainChen 提到...

你有简单的解决方案应该在那篇记录下给我留下言提醒嘛,以后我就不能走那么多弯路了,呵呵