上集文章已詳細講解過Arch Linux的安裝方式,本集內容將以Arch Linux基本環境為基礎,接著介紹Arch Linux的套件管理環境與系統服務,並說明如何安裝與設定其桌面環境。
安裝前,系統會要求確認,按下〔Y〕後再按下〔Enter〕鍵,系統就會由網路上的Arch Linux鏡像軟體網站取得net-tools套件來安裝。
安裝完成後,便可以使用ifconfig或route等傳統指令來檢視網路的狀態。
pacman所使用的-Sy參數,其中大寫S是同步套件庫(Synchronize Packages)的意思,後面接著套件的名稱,這樣pacman就會由網路下載套件進行安裝。
而小寫y則是同步參數S的附屬參數,意思是同時更新(Refresh)套件資料庫的套件資訊,因此安裝時可以看到pacman從core、extra及community等三個主要套件分類資料庫中同步更新套件資料庫的資訊。
若要安裝前面所提到在文字命令模式下的網路檔案下載指令wget,則可使用下列指令:
使用pacman安裝軟體時,pacman會跟CentOS所使用的yum指令及Debian所使用的apt-get指令一樣,將軟體相關所需的程式或程式庫一起安裝,因此安裝wget時會同時安裝wget所相依的程式庫libidn,如圖5所示。
|
▲圖5 安裝wget時會一併安裝其相依的libidn程式庫。 |
安裝過程中會即時顯示下載進度及速率,最後會提示建議安裝的相關軟體(Optional Dependencies)ca-certificates,而[installed]是表示ca-certificates已經安裝在系統中。
在安裝好wget之後,在命令列模式下執行以下的指令,來下載前面提到的套件庫鏡像網站資料檔mirrorlist:
移除套件
可以安裝套件,當然也能夠移除套件,譬如要移除剛剛安裝的wget套件,則使用如下指令:
其中,-R指的是移除(Remove),不過該指令只移除wget套件本身,如果希望將附加安裝的相依(Dependencies)套件一併移除,例如剛剛安裝wget時pacmanwget所需而順便安裝的libidn,則必須在R之後加上附屬參數s,該指令內容如下:
s是指Recursive的意思,加上附屬參數s之後,pacman會將wget相依且沒有其他系統套件需要相依的套件一起移除,也就是說,剛剛跟隨wget一起安裝的相依套件libidn,如果系統的其他套件還有相依的需要,就不會被一併地移除。由於libidn目前只與wget這個套件有相依需要,所以會一起被移除掉。
套件更新
在Linux的世界裡,因為是Open Source的關係,也因為軟體有時會有一些臭蟲或漏洞,因此軟體更新是經常的活動,而在Arch Linux中,可以使用底下指令進行整個Arch Linux系統的套件更新:
其中多出來的u附屬參數指的便是更新(Upgrade),使用這個指令時,pacman便會先更新系統套件資料庫,然後與系統套件進行比對,最後將需要更新的套件列出來,讓使用者選擇是否要更新。
按下〔Y〕鍵及〔Enter〕鍵之後,pacman便會開始下載更新套件進行全系統的更新。
不論是安裝或是更新套件,這些套件都會被下載到「/var/cache/pacman/pkg」目錄下,然後才進行安裝,所以可以檢視一下此目錄所暫存的套件,如圖6所示。
|
▲圖6 檢視「/var/cache/pacman/pkg」目錄內暫存的套件。 |
從中可以發現,這些套件都是以tar.xz壓縮包裹檔案的方式出現,而Arch Linux系統在安裝或是更新多次之後,這些套件就會占掉不少系統空間,需要進行清除,而要清除時可以使用底下指令來進行:
其中附屬參數c是Clean的意思,兩個c附屬參數指的是清空整個「/var/cache/pacman/pkg」目錄下的檔案,而這個指令同時也會清除「/var/lib/pacman」下沒用到(unused)的套件資料庫資訊。
使用該指令時,系統確認是否移除套件時,預設的狀況是No,因此要按下〔Y〕之後再按〔Enter〕鍵,才能讓「/var/cache/pacman/pkg」下的套件都被清空。
如果只採用一個c附屬參數,那麼pacman只會清除「/var/cache/pacman/pkg」底下非現行安裝使用中的套件,也就是只移除舊的套件,保留現在系統安裝的套件(Locally Installed Packages),圖7即是「pacman -Sc」指令執行的畫面。
|
▲圖7 執行「pacman -Sc」指令。 |
從這裡可以看出,因為只是清除舊的或是系統沒使用到的套件,因此系統預設移除的狀況是Yes。