2009-07-26 132 views
0

我試圖安裝一個依賴於「Imagemagick 6.3.9+」的軟件(moddims) - 我嘗試安裝ImageMagick(6.5.4-5)的最新版本,但遇到以下錯誤,當我嘗試「make」moddims:如何針對較舊版本的庫配置/製作/安裝?

mod_dims_ops.c: In function ‘dims_smart_crop_operation’: 
mod_dims_ops.c:34: error: too few arguments to function ‘ParseGravityGeometry’ 

推測函數簽名在ImageMagick 6.3.9和當前版本之間有所變化。

我想嘗試安裝moddims對舊版本的ImageMagick - 但我想安裝ImageMagick 6.3.9而不會干擾已安裝的6.5.4-5版本。

我可以使用什麼./configure標記來a)安裝舊版本的ImageMagick,以免覆寫或以其他方式干擾我的現代版本和b)編譯moddim以使用舊版本?

我在OSX上,但我預計在我以後需要在Linux生產服務器上安裝moddims時遇到同樣的問題。

回答

2

顯然,您必須獲取,編譯並安裝ImageMagick的舊版本。

面對這個問題 - 尤其是因爲它處於試驗階段(你不知道肯定要保留此版本的ImageMagick的周圍) - 我想:

  • 創建新目錄安裝ImageMagick的:

    /opt/ImageMagick 
    
  • 配置ImageMagick的6.3.9在那裏安裝 - 大概是:

    ./configure --prefix=/opt/ImageMagick 
    
  • 構建,測試並安裝它。

  • 配置moddims在ImageMagick的位置看之前規範的地方:

    export LDFLAGS=-L/opt/ImageMagick/lib 
    export CPPFLAGS=-I/opt/ImageMagick/include 
    ./configure .... 
    
  • 檢查生產moddims代碼使用您的首選庫:

    otool -L ...moddims-progam-or-library... # MacOS X 
    ldd ...moddims-program-or-library...  # Linux, etc. 
    

第一次檢查將是「moddims配置時編譯」;如果沒有,儘管試圖避免這樣做,但您可能使用了「標準」版本的moddims頭文件。

可能還有configure選項指定ImageMagick庫應從何處取出 - 請檢查'./configure --help'(和/或'grep -i image configure')。

+0

很好的答案,但對於「配置ImageMagick 6.3.9安裝在那裏」我想我需要使用「./configure --prefix =/opt/ImageMagick/--exec-prefix =/opt/ImageMagick /「? – 2009-07-26 18:37:53

1

由於ImageMagick使用pkg-config。你所需要做的就是調整你的PKG_CONFIG_PATH來引用舊版本。 (假設你的軟件包調用PKG_CHECK_MODULES來爲ImageMagick配置自己,如果你的軟件包沒有這樣做,你應該修改它,以便它可以)

基本上,你想抓取舊的ImageMagick並將它安裝到某處例如。/ configure --prefix = $ HOME/obsolete & & make install),然後轉到您的軟件包並使用參數PKG_CONFIG_PATH = $ HOME/obsolete/lib/pkgconfig進行配置。不幸的是,ImageMagick會在你指定的前綴之外安裝文件(例如在/ Library/perl中),所以這並不保證不會修改你當前的庫。 (IMO,這是一個ImageMagick包裝錯誤。)

檢查pkg-config文檔以獲取詳細信息。