google code-beautifer

星期六, 2月 02, 2008

Mandriva 套件管理

建議

  • 先用DVD 或CD 安裝絕大部分的套件
  • 到 MCC 裡 用媒體管理員把 DVD 或 CD 媒體 的"啟用"取消
  • 用 easy urmpi 把媒體加入(參照下文),這樣就可以從http/ftp 站裡抓DVD 上缺的RPM/及作檔案更新
    * 有需要時(如網路斷線) 要安裝DVD 上的RPM還是可以把用媒體管理員把網路媒體 的"啟用"取消, 再打開 DVD 或 CD 媒體 的"啟用"
  • 有必要時去個別網站下載檔案

個別檔案網路下載


發行的CD/DVD 多多少少會缺套件,建議先用DVD 或CD 安裝絕大部分的套件,再按下面順序去找

  1. http://easyurpmi.zarb.org/ (Easy urpmi 詳見Easy urpmi一節)
  2. http://sophie.zarb.org/ 提供了Mandriva 的RPM索引,找不到的話再去
  3. http://fr2.rpmfind.net/ 找各大發行版本(不限Mandriva)的RPM索引


sophie 連 cooker 的套件也會顯示出來。如 multiget-1.2.0-2mdv2008.1.x86_64.rpm
但好像沒有提供實體的RPM,rpmfind 可以找到實體的RPM跟查詢個別套件的檔案及相依的套件

Easy urpmi: 加入更多套件來源


Mandrake 的控制中心 (Mandrake Control Center,以下簡稱 MCC)裡可以用媒體管理員管理不同媒體來源,有時 Mandriva DVD缺套件,會導致某些軟體不能安裝。要解決這個問題,可以在MCC 加入更多套件來源,比如說PLF (http://plf.zarb.org/~nanardon/)。PLF 全名是 Penguin Liberation Front,它收藏了很多因為種種問題而無法令 Mandrake 無法直接包括在內的軟體,例如各種P2P軟體、freeware (免費但不是開放原碼/或加發佈上的限制,例如不許加入 Linux發行版本出售)、含有有專利的東西 (mp3, 跟許多多媒體編碼都是例子)。

要指定加入套件來源的地址,用指令會比用進入MCC圖形介面更加容易。PLF的網站有一個介面叫 Easy urpmi,可以把你準備加入的站台的程序指令以文字形式顯示出來,只要以 root 身份把它給你的一行行指令用老鼠剪貼到到終端機去執行就可以了。

以 MDV2008 比方來說,通常先把 DVD 或 CD 媒體 的"啟用"取消(MCC 下執行,或終端機下執行urpmi.removemedia -a) 後,用喜歡的瀏覽器 (如mozilla-firefox)開啟 easyurpmi.zarb.org 網址 ,它會問你一些問題,然後會給你要用到的指令

1.在網頁第一個步驟 (Select your system) 中指定使用版本,機種,跟管理機制,比如Mandriva 2008.0 ,x86_64 (表示AMD 的 64 bit,跟Intel 的 64bit, i586 都不一樣),跟 urpmi,及要不要 Select the mirror separately for every source 。然後按 "proceed to step 2"。

2. 指定站台地址: main、contrib 和 update 的 mirror 站台地址。Main 是正式支援的自由軟體套件,有些非自由軟體會放到 non-free下,contrib 是其它人協助包裝但沒有正式支援的,對這三者而言: XXX_update 是發行後更新套件,XXX_backport 是半官方版本更新套件(有相容風險)。有裝 YYY 來源的話,YYY_update 最好也加入。以新增Main媒體為例,就把mirror 站下拉選成喜歡的(如twaren.net ),然後打勾。PLF 這是 PLF 自己的套件的 mirror 站台地址。

最後按 proceed to step 3。

3.以 root 用老鼠剪貼它顯示的指令到到終端機去執行,以新增Main媒體為例,如下:

urpmi.addmedia --update main_updates http://ftp.twaren.net/Linux/Mandrake/official/2008.0/x86_64/media/main/updates with media_info/hdlist.cz

要是 64 bit 環境要混用 i586套件,只要回到步驟一把架構換成 i586,重複加入更多的套件來源即可。這樣就可以在圖形介面 (rpmdrake) 或文字模式介面 (urpmi) 中選取安裝喜歡的軟件了。

使用管理


裝好後後可以用

  • urpmq 套件名稱

  • 查詢是否已安裝某個套件。
    -p 查詢還沒安裝套件檔案的資訊
    -i 顯示套件的功用資訊
    -l 列出包含了那些檔案
    -a 列出系統內所有的套件
    分頁輸出用rpm -qa | less
  • urpmi 套件名稱

  • 來安裝你想要的套件,
  • urpmf 檔案名稱

  • 可以查詢某個檔案是在那個套件裡面。
  • urpme 檔案名稱

  • 移除某個套件


即使在文字模式介面下,只要套件來源設好,要是需要安裝相依套件,urpmi也 會警告套件相依,在使用者同意後自行滿足安裝相依,十分方便。

安裝更新管理


新版在軟體有更新時,在gnome 工具列上也會提醒安裝更新。可以自行參考 /etc/urpmi/urpmi.cfg 的格式修改設定自動更新安裝。往後定期跑 urpmi.update -a 更新所有媒體資訊,文字模式介面下,每天也只要執行
urpmi --auto-select --media updates
就可以很簡單完成重大更新安裝。

不過有時候mirror 站會出問題卡住(其他如Ubuntu 也會),還是不建議完全倚賴用自動更新。

相依(dependency)問題


想把其他家的 RPM 套件裝到 Mandriva 上經常可能會遇到相依問題, 特別是出現 "找不到某某 .so 檔" ( shared objects: 動態聯結程式庫,) 之類的錯誤訊息。可能要到sophie/rpmfind 網上搜尋那個套件裡面提供欠缺的 .so程式庫,。 找不到同樣版本的話,有時到 /lib 或 /lib64 下建立 symbolic link 欺騙系統也許能成功。如
ln -s 某某.so.現有版 某某.so.需要版
不過32 位元 跟 64 位元程式庫通常是無法互用的。

此外 alien 可以將 .deb 與 .rpm 檔案互相轉換; 不過可能也會遭遇相依性問題。