高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

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

參考網址:

http://apt.nc.hcc.edu.tw/web/apt/apt.html

Comments