最簡單的安裝方法就是: tar -zxvf *.gz tar -jxvf *.bz2 cd gettext-0.17 (或者glib-2.15.一、pango-1.19.0、atk-1.20.0、jpegsrc-v6b、tiff-3.8.二、gtk+-2.12.4) ./configure --prefix=/usr (記住這裏必定是「/usr」,不是安裝在/usr下面的會很麻煩,後面就講這個) make sudo make install
摘自:http://bbs.chinaunix.net/archiver/tid-655625.html 首先說下/etc/ld.so.conf: 這個文件記錄了編譯時使用的動態連接庫的路徑。 默認狀況下,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫文件 若是你安裝了某些庫,好比在安裝gtk+-2.4.13時它會須要glib-2.0>=2.4.0,辛苦的安裝好glib後 沒有指定 --prefix=/usr 這樣glib庫就裝到了/usr/local下,而又沒有在/etc/ld.so.conf中添加/usr/local/lib 這個搜索路徑,因此編譯gtk+-2.4.13就會出錯了 :( 對於這種狀況有兩種方法解決: 一:在編譯glib-2.4.x時,指定安裝到/usr下,這樣庫文件就會放在/usr/lib中,gtk就不會找不到須要的庫文件了 :) 對於安裝庫文件來講,這是個好辦法,這樣也不用設置PKG_CONFIG_PATH了 (稍後說明) 二:將/usr/local/lib加入到/etc/ld.so.conf中,這樣安裝gtk時就會去搜索/usr/local/lib,一樣能夠找到須要的庫 :) 將/usr/local/lib加入到/etc/ld.so.conf也是必須的,這樣之後安裝東東到local下,就不會出現這樣的問題了。 將本身可能存放庫文件的路徑都加入到/etc/ld.so.conf中是明智的選擇 ^_^ 添加方法也極其簡單,將庫文件的絕對路徑直接寫進去就OK了,一行一個。例如: /usr/X11R6/lib /usr/local/lib /opt/lib 再來看看ldconfig是個什麼東東吧 : 它是一個程序,一般它位於/sbin下,是root用戶使用的東東。具體做用及用法能夠man ldconfig查到 簡單的說,它的做用就是將/etc/ld.so.conf列出的路徑下的庫文件 緩存到/etc/ld.so.cache 以供使用 所以當安裝完一些庫文件,(例如剛安裝好glib),或者修改ld.so.conf增長新的庫路徑後,須要運行一下/sbin/ldconfig 使全部的庫文件都被緩存到ld.so.cache中,若是沒作,即便庫文件明明就在/usr/lib下的,也是不會被使用的,結果 編譯過程當中抱錯,缺乏xxx庫,去查看發現明明就在那放着,搞的想大罵computer蠢豬一個。 ^_^ 我曾經編譯KDE時就犯過這個錯誤,(它須要每編譯好一個東東,都要運行一遍),因此 切記改動庫文件後必定要運行一下ldconfig,在任何目錄下運行均可以。 再來講說 PKG_CONFIG_PATH這個變量吧: 常常在論壇上看到有人問"爲何我已經安裝了glib-2.4.x,可是編譯gtk+-2.4.x 仍是提示glib版本過低阿? 爲何我安裝了glib-2.4.x,仍是提示找不到阿?。。。。。。"都是這個變量搞的鬼。 先來看一個編譯過程當中出現的錯誤 (編譯gtk+-2.4.13): checking for pkg-config/usr/bin/pkg-config checking for glib-2.0>=2.4.0 atk >=1.0.1 pango >=1.4.0Package glib-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `glib-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'glib-2.0' found configure: error: Library requirements (glib-2.0 >= 2.4.0 atk >= 1.0.1 pango >= 1.4.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them. [root@NEWLFS gtk+-2.4.13]# 很明顯,上面這段說明,沒有找到glib-2.4.x,而且提示應該將glib-2.0.pc加入到PKG_CONFIG_PATH下。 究竟這個pkg-config PKG_CONFIG_PATH glib-2.0.pc 是作什麼的呢? let me tell you ^_^ 先說說它是哪冒出來的,當安裝了pkgconfig-x.x.x這個包後,就多出了pkg-config,它就是須要PKG_CONFIG_PATH的東東 pkgconfig-x.x.x又是作什麼的? 來看一段說明: The pkgconfig package contains tools for passing the include path and/or library paths to build tools during the make file execution. pkg-config is a function that returns meta information for the specified library. The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig because of the prefix we use to install pkgconfig. You may add to PKG_CONFIG_PATH by exporting additional paths on your system where pkgconfig files are installed. Note that PKG_CONFIG_PATH is only needed when compiling packages, not during run-time. 我想看過這段說明後,你已經大概瞭解了它是作什麼的吧。 其實pkg-config就是向configure程序提供系統信息的程序,好比軟件的版本啦,庫的版本啦,庫的路徑啦,等等 這些信息只是在編譯其間使用。你能夠 ls /usr/lib/pkgconfig 下,會看到許多的*.pc,用文本編輯器打開 會發現相似下面的信息: prefix=/usr exec_prefix=$ libdir=$/lib includedir=$/include glib_genmarshal=glib-genmarshal gobject_query=gobject-query glib_mkenums=glib-mkenums Name: GLib Description: C Utility Library Version: 2.4.7 Libs: -L$ -lglib-2.0 Cflags: -I$/glib-2.0 -I$/glib-2.0/include 明白了吧,configure就是靠這些信息判斷你的軟件版本是否符合要求。而且獲得這些東東所在的位置,要不去哪裏找呀。 不用我說你也知道爲何會出現上面那些問題了吧。 解決的辦法很簡單,設定正確的PKG_CONFIG_PATH,假如將glib-2.x.x裝到了/usr/local/下,那麼glib-2.0.pc就會在 /usr/local/lib/pkgconfig下,將這個路徑添加到PKG_CONFIG_PATH下就能夠啦。而且確保configure找到的是正確的 glib-2.0.pc,就是將其餘的lib/pkgconfig目錄glib-2.0.pc幹掉就是啦。(若是有的話 ^-^) 設定好後能夠加入到~/.bashrc中,例如: PKG_CONFIG_PATH=/opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig: /usr/X11R6/lib/pkgconfig [root@NEWLFS ~]#echo $PKG_CONFIG_PATH /opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:/usr/X11R6/lib/pkgconfig 從上面能夠看出,安裝庫文件時,指定安裝到/usr,是頗有好處的,不管是/etc/ld.so.conf仍是PKG_CONFIG_PATH 默認都會去搜索/usr/lib的,能夠省下許多麻煩,不過從源碼包管理上來講,都裝在/usr下 管理是個問題,不如裝在/usr/local下方便管理 其實只要設置好ld.so.conf,PKG_CONFIG_PATH路徑後,就OK啦 ^_^
#./configure提示: checking for GLIB - version >=2.5.7 *** 'pkg-config --modversion glib-2.0' returned 2.12.0, but GLIB (2.10.3) *** was found!If pkg-config was correct, then it is best *** to remove the old version of GLib. You may also be able to fix the error *** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing ***/etc/ld.so.conf. Make sure you have run ldconfig if that is *** required on your system. ***If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH *** to point to the correct configuration files no configure: error: *** GLIB 2.5.7 or better is required. The latest version of *** GLIB is always available from ftp://ftp.gtk.org/. If GLIB is installed *** but not in the same location as pkg-config add the location of the file *** glib-2.0.pc to the environment variable PKG_CONFIG_PATH.
若是不是rpm或源碼包已經被刪,那隻能直接刪文件了。通常包括以下文件: a) /usr/lib/libglib-* b) /usr/lib/pkgconfig/glib-2.0.pc c) /usr/iclude/glib-2.0 d) /usr/share/glib-2.0 e) /usr/share/locale/*/LC_MESSAGES/glib20.mo 差很少就這些了,刪除以後就能夠繼續安裝新版glib了,安裝完以後,能夠查看安裝目錄下的文件,而後到系統默認路徑下去找相應的舊版的文件,刪除之,這樣就刪乾淨了。 刪除以前最後作一下記錄,或乾脆備份一下,以防刪錯。而且建議在原來的位置創建一個名爲原來的文件名的且指向新文件的連接文件,由於或許某些程序會直接訪問系統默認目錄。