APT(Advenced Package Tool)
APT(Advenced Package Tool),是 Linux 用來管理套件的工具,透過 APT 可以更有效率的管理 RPM,不管是安裝、移除、或是升級都很方便。然而 APT 最大的優點,是可以自動處理 RPM 相依性的問題,例如當安裝 A rpm,而 A rpm 和 B rpm 又有相依性的時候,原本作法是先下載 B rpm 安裝後,再下載 A rpm 安裝;利用 APT 則只需要「apt-get install A」就完成了,這樣 APT 就會幫我們下載 A rpm,而且會自動下載相依性檔案(B rpm)幫我們安裝,這樣對 RPM 的安裝、移除、或是升級都可以不用去管煩人的相依性問題了。
安裝:
Step 1 安裝 apt:
$ rpm -ivh ftp://apt.nc.hcc.edu.tw/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm
Step 2 修改設定:
$ vi /etc/apt/sources.list
因為原本預設的 apt source 是連到國外,速度比較慢。
$ rpm http://ayo.freshrpms.net/ fedora/linux/1/i386 core updates freshrpms
可以改成新竹縣教育研究發展暨網路中心維護的 APT Server:
$ rpm ftp://apt.nc.hcc.edu.tw/pub/apt/redhat/9 i386 os updates freshrpms firefly extra
使用說明:
$ apt-get update
更新:這是用來取得記錄在 /etc/apt/sources.list
內的 apt 伺服器的套件檔案清單,在使用 apt-get dist-upgrade
指令升級套件前,要記得先用這指令將套件檔案清單更新。
執行 apt-get update
指令的時候會同步 client 端和 APT 伺服器的 RPM 索引清單(package list),APT 伺服器的 RPM 索引清單置於 base 資料夾內,使用者端電腦取得 base 資料夾內的 bz2 RPM 索引清單壓縮檔後,會將其解壓置放於 /var/state/apt/lists/
。
$ apt-get dist-upgrade
升級:這裡的升級,並不是由 Red Hat Linux 8.0 變成 9 這樣的升級,而是當 Red Hat 有出升級的 rpm 的時候,利用這個指令,升級我們已經安裝的 rpm;加上 -y
參數可自動回答 yes 直接安裝。
當使用者用 apt-get install 或 apt-get dist-upgrade 指令的時候,就會將 /var/state/apt/lists/ 資料夾內的資料和使用者端電腦內的 RPM 資料庫比對,如此一來就可以知道那些 RPM 已安裝、未安裝、或是可以升級的,然後 APT 就會自動透過網路下載需要的 rpm 回來安裝了。
$ apt-cache search
搜尋:用這個指令可以搜尋 rpm,例如:apt-cache search httpd
,這樣檔名內有 httpd 字眼的 rpm 都會出現了。
$ apt-cache depends
相依性:利用這個指令來看到某個 rpm 的所有相依性檔案,例如:apt-cache depends httpd
,這樣 httpd 的所有相依性檔案就會出現了,有時候不確定某個相依性檔案是屬於那個 rpm 時,這個指令就很有用。
$ apt-get install
安裝:當我們知道 rpm 名稱的時候,就可以用這指令安裝套件,例如:apt-get install httpd
,這樣 apt 就會自動下載 httpd 的 rpm 回來安裝,若 httpd 有相依性套件的時候,apt 也會自動下載安裝。
$ apt-get clean
清除:當使用 apt-get install 指令安裝套件,下載下來的 rpm 會放置於 /var/cache/apt/archives,使用apt-get clean
指令可以將之清除,避免佔用硬碟空間。
$ apt-get remove
移除:如果要移除某個 rpm 的時候就可以使用此指令,例如:apt-get remove httpd
,就會移除 httpd 了,假如這個 rpm 有相依性套件的時候,apt 也會一併移除。
另外,把 apt 寫成 script 排入每天的排程工作(/etc/cron.daily),就可以每天自動比對更新了:
#!/bin/sh
apt-get update
apt-get -y dist-upgrade
apt-get clean