歡迎您光臨本站 註冊首頁

Fedora 7 中安裝xine

←手機掃碼閱讀     火星人 @ 2014-03-25 , reply:0

  前一段時間一直在用mplayer,最近想用amarok來聽廣播,但是amarok用的是xine-engine,所以播放不了各種音樂,於是準備再裝一個xine。

  首先到xine的主頁http://xinehq.de/下載xine-lib和xine-ui,xine-lib是xine的主程序現在的版本是1.1.7,而且只是是個後台程序,所以還需要下載一個xine的圖形界面。xine有很多個圖形前端,比如gxine,kxine,oxine,等等,我用了xine-ui。直接下載就行了。對於解碼器,可以使用mplayer的win32codecs,也可以直接去http://www.mplayerhq.hu 下載解碼程序,all-20061022.tar.bz2或者essential-20061022.tar.bz2。

  然後就可以開始安裝了,第一步可以先安裝解碼器,直接將解碼程序解壓縮到/usr/local/lib/codecs/ 中,安裝過mplayer 的win32codecs包的話可以通過 rpm -ql win32codecs 查看,一般會在/usr/lib/codecs 和/usr/lib/win32 文件夾中。

  第二步安裝xine-lib,
  #tar -jxvf xine-lib-1.1.7.tar.bz2 -C /usr/local/src
  #cd /usr/local/src/xine-lib-1.1.7
  #./configure
  #make && make install

  一般都會正常安裝。

  第三步比較關鍵,由於是非標準安裝,需要讓系統知道各so 文件的位置,通過檢查文件ld.so.conf來實現

  #vi /etc/ld.so.conf

  查看文件中是否有/usr/local/lib這一行,如果沒有就在最後加上這一行(你的xine安裝位置)。

  然後記得運行
  #ldconfig

  另外還需要讓其他軟體如後面安裝的xine-ui 知道xine-lib已經安裝,可以修改環境變數PKG_CONFIG_PATH來實現,具體方法如下面的註釋3。

  [注1]對於/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

  [注2]對於ldconfig,它是一個位於/sbin 下的程序,它的作用就是將/etc/ld.so.conf 列出的路徑下的庫文件 緩存到/etc/ld.so.cache 以供使用。因此當安裝完一些庫文件,(例如剛安裝好glib),或者修改ld.so.conf 增加新的庫路徑后,需要運行一下/sbin/ldconfig 來使所有的庫文件都被緩存到ld.so.cache 中,如果沒做,即使庫文件明明就在/usr/lib 下的,也是不會被使用的,結果編譯過程中報錯,缺少xxx庫。所以切記改動庫文件后一定要運行一下ldconfig,在任何目錄下運行都可以。

  [注3]對於PKG_CONFIG_PATH 這個環境變數,當安裝了pkgconfig-x.x.x 這個包后,就多出了pkg-config,它就是需要PKG_CONFIG_PATH 的東東。pkg-config 就是向configure 程序提供系統信息的程序,比如軟體的版本、庫的版本、庫的路徑等等。這些信息只是在編譯其間使用。通過 ls /usr/lib/pkgconfig ,會看到許多的*.pc,用文本編輯器打開會發現類似下面的信息:

  prefix=/usr
  exec_prefix=${prefix}
  libdir=${exec_prefix}/lib
  includedir=${prefix}/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${libdir} -lglib-2.0
  Cflags: -I${includedir}/glib-2.0 -I${libdir}/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 或者系統的配置文件 /etc/profile 中,修改如:

  PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/X11R6/lib/pkgconfig:/opt/kde3/lib/pkgconfig

  並使之生效,通過 #echo $PKG_CONFIG_PATH 應該可以看到剛剛設置的:

  /usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/X11R6/lib/pkgconfig:/opt/kde3/lib/pkgconfig

  從上面可以看出,安裝庫文件時,指定安裝到/usr,是很有好處的,無論是/etc/ld.so.conf 還是PKG_CONFIG_PATH 默認都會去搜索/usr/lib 的,可以省下許多麻煩,不過從源碼包管理上來說,都裝在/usr 下管理是個問題,不如裝在/usr/local下方便管理。其實只要設置好ld.so.conf,PKG_CONFIG_PATH路徑后,就OK了。

  第四步安裝圖形前端xine-ui:
  #tar -xzvf xine-ui-0.99.5.tar.gz -C /usr/local/src
  #cd /usr/local/src/xine-ui-0.99.5
  #./configure

  如果這時報錯找不到xine-lib之類,多半是上一步沒做好,如PKG_CONFIG_PATH 的設置是否正確並生效或者ld.so.conf 是否設置正確等問題。

  #make && make install

  第五步配置config文件,xine的config文件在~/.xine/ 中
  #vi ~/.xine/config

  找到 # path to Win32 codecs 這一段,看看該段第二行的默認path 是不是你在第一步中放codecs 的地方,如果不是就設置外部解碼器路徑,可以將該段第三行的註釋去掉,路徑改為你的codecs 文件夾的路徑。然後保存退出。

  最後可以直接用命令xine 來測試xine 是否正常工作。

[火星人 ] Fedora 7 中安裝xine已經有510次圍觀

http://coctec.com/docs/linux/show-post-169494.html