2011年8月30日 星期二

Arch Linux 工具︰pacman

在 RedHat 系列(CentOS、Fedora…)有 yum 作為套件管理工具,在 Debian 系列(Ubuntu)有 apt 和 aptitude 。
在 Arch Linux 中則是有 pacman 和 yaourt,這裡的要記錄的,是 Arch Linux 系統剛安裝完畢時,系統預設會包含的套件管理工具。

pacman 是由可拆成兩個部分「pac」和「man」,全名是 package manager utility ,也就是套件管理工具。

在我之前學習的 Linux 指令中,已經習慣的「命令 -[參數集合] [目標對象]」的模式,其中參數的順序是可以改變的,除非是特別要的有其它資訊,不得不擺在最後(像是 tar -xzvf [檔名] 其中的 f 為了要接檔名,所以需要放在最後)。而這個習慣在 pacman 上卻有所不同,因此才讓我想花些時間多了解它一點,以下對我常用到的方式作記錄…

pacman 的語法以我常用的模式而言,可以寫成
pacman -[主參數][延申選項]

在主參數的部分可以分為…
-R(remove): 移除,單獨使用時,就表示要移除套件
-S(sync): 同步,單獨使用表示安裝某個套件(想像網路上有許多軟體,同步到自己的主機,就可以用了)
-U(update): 升級,實際上這個指令我並不常用。比較常用「-Syu」 替代。

因此,同樣是「s」的延申選項,在 -S 和 -R 後頭表示不一樣的意思。
所以,查看文件的時候,需要先找到要用的主參數,再去查找對應的延申選項…
(本來想翻譯說明文件,但是太難理解了,還是只記錄重點就好。)

常用的指令…
1. pacman -Syu
-S 同步,y 表示的更新套件列表資料到最新,u 表示進行系統更新
如果,更新完還要安裝特定套件,在指令後面接上套件名稱
如果,不相信套件資料是最新的,在延申選項中打兩個 y,如︰「pacman -Syyu」

2. pacman -Rsn [套件名]
-R 移除, s 表示同時刪除被相依,且沒被其它套件相依的套件, n 表示不留記錄檔
Linux 的套件許多具有相依關係,舊的管理工具會在安裝套件的時候一併安裝相依套件,但是在移除的時候並不一定同時移除這些相依的套件,造成硬碟花費在這些不會有人用的套件上。加上 s 就可以把相依套件一併刪除。

而套件在使用時候,有時候會為使用者建立相關個人設定或使用記錄…等資料,加上 n 就表示不要保留這些檔案,要一併刪除
因此這個指令可以說是「完全刪除套件,並把用不到的相依套件也刪了」的意思

3. pacman -Ss [搜尋條件]
不知道想裝的套件叫什麼名字嗎?那你需要的就是這個指令,其中的 s 表示搜尋(search)。

4. pacman -Sc
pacman 會把安裝檔案放在硬體裡,因此當你想要空出多一點硬碟空間時,可以用這個指令,c 表示清理(clean)。
另一個使用時機,是當你滿長一段時間沒有更新系統,最好也先作一下清理,免得這些暫存的安裝檔讓系統誤判為最新的版本,導致更新失敗。

沒有留言:

張貼留言