Since 2003-12-18 by
楊錦昌前言
您使用什麼方法在管理你的 RPM,從光碟片安裝,從網(wǎng)路下載安裝、還是使用 Red Hat 的 up2date(Red Hat Network)在維護(hù),這些都是解決問(wèn)題的方法,可是你可以有更好的選擇 -- APT
APT 的安裝、使用
1-1. 什麼是 APT
APT(Advanced Package Tool)是
Debian GNU/Linux 用來(lái)管理套件的工具,
Conectiva 這家巴西的 Linux 套件公司將它移植到使用 RPM 系統(tǒng)的 Linux 套件上,所以現(xiàn)在我們才可以在 Red Hat Linux(或 Fedora) 上使用 APT 來(lái)管理我們的 RPM
1-2. APT 能做什麼
我們可以用 APT 來(lái)管理我們的 RPM ,不管是安裝、移除、或是升級(jí),APT 都做的到,可是我們選用 APT 最大的理由是:它能夠自動(dòng)處理 RPM 相依性的問(wèn)題,例如:當(dāng)我們要安裝 A rpm,而 A rpm 和 B rpm 又有相依關(guān)係的時(shí)候,傳統(tǒng)作法是先下載 B rpm 安裝之後,再下載 A rpm 安裝之;可是我們?nèi)粲邪惭b APT,則只要下一行「apt-get install A」指令就可以了,這樣 APT 就會(huì)幫我們下載 A rpm,且會(huì)自動(dòng)下載相依性檔案(B rpm)幫我們安裝,如此一來(lái)我們對(duì)於 RPM 的安裝、移除、或是升級(jí)都可以不用去管煩人的相依性問(wèn)題了
1-3. APT 簡(jiǎn)易運(yùn)作原理
我們的機(jī)器安裝了 APT 套件之後就成了 APT 的使用者端,當(dāng)我們?cè)诎惭b、升級(jí) RPM 的時(shí)候,事實(shí)上,都是透過(guò)網(wǎng)路連到遠(yuǎn)端的 APT 伺服器去下載 RPM 回來(lái)安裝的,APT 伺服器我們是可以自己指定的,而 APT 使用者端也可以同時(shí)成為 APT 伺服器
當(dāng)我們安裝了 APT套件之後就會(huì)有 apt-get 指令,下 apt-get update 指令的時(shí)候會(huì)同步使用者端和 APT 伺服器的 RPM 索引清單(package list),APT 伺服器的 RPM 索引清單置於 base 資料夾內(nèi),使用者端電腦取得 base 資料夾內(nèi)的 bz2 RPM 索引清單壓縮檔後,會(huì)將其解壓置放於 /var/state/apt/lists/,而當(dāng)使用者使用 apt-get install 或 apt-get dist-upgrade 指令的時(shí)候,就會(huì)將這個(gè)資料夾內(nèi)的資料和使用者端電腦內(nèi)的 RPM 資料庫(kù)比對(duì),如此一來(lái)就可以知道那些 RPM 已安裝、未安裝、或是可以升級(jí)的,然後 APT 就會(huì)自動(dòng)透過(guò)網(wǎng)路下載需要的 rpm 回來(lái)安裝了
1-4. 安裝 Fedora Core 2、Fedora Core 1、freshrpms 的 GPG KEY :
rpm --import /usr/share/doc/fedora-release-2/RPM-GPG-KEY
rpm --import /usr/share/doc/fedora-release-1/RPM-GPG-KEY
rpm --import
ftp://apt.nc.hcc.edu.tw/pub/freshrpms/RPM-GPG-KEY註:
裝了 Fedora Core2、Fedora Core 1、freshrpms 的 GPG key 之後,在安裝他們維護(hù)的 rpm 的時(shí)候才不會(huì)出現(xiàn)警告訊息,若不在乎這些訊息,沒(méi)有安裝也是沒(méi)有關(guān)係的
1-5. APT 的安裝
以下的範(fàn)例都是以
http://freshrpms.net/ 網(wǎng)站所維護(hù)的 apt rpm 為例
(若是對(duì)
CLE 所維護(hù)的 APT 有興趣,請(qǐng)參考:
http://cle.linux.org.tw/~candyz/APT-HOWTO_CLE.txt)
for Fedora Core 2
線上安裝:rpm -ivh
ftp://apt.nc.hcc.edu.tw/pub/apt/fedora/linux/2/i386/RPMS.extra/apt-0.5.15cnc6-1.1.hcc.i386.rpmfor Fedora Core 1
線上安裝:rpm -ivh
ftp://apt.nc.hcc.edu.tw/pub/apt/fedora/linux/1/i386/RPMS.extra/apt-0.5.15cnc3-0.1.hcc.i386.rpmfor Red Hat Linux 9
線上安裝:rpm -ivh
ftp://apt.nc.hcc.edu.tw/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm1-6. 修改 APT 伺服器來(lái)源
freshrpms 維護(hù)的 apt rpm 預(yù)設(shè)的 APT 伺服器是
http://ayo.freshrpms.net,遠(yuǎn)在國(guó)外,速度較慢,底下將其改為
新竹縣教育研究發(fā)展暨網(wǎng)路中心 維護(hù)的 APT 伺服器
vi /etc/apt/sources.list
#rpm http://ayo.freshrpms.net fedora/linux/1/i386 core updates freshrpms
↑找到這一行在最前面加上 # 註解符號(hào),然後加入適合您的系統(tǒng)版本的 apt 伺服器來(lái)源設(shè)定
for Fecora Core 2
rpm ftp://apt.nc.hcc.edu.tw/pub/apt/fedora/linux/2 i386 os updates freshrpms firefly extra
for Fecora Core 1
rpm ftp://apt.nc.hcc.edu.tw/pub/apt/fedora/linux/1 i386 os updates freshrpms firefly extra
for Red Hat linux 9
rpm ftp://apt.nc.hcc.edu.tw/pub/apt/redhat/9 i386 os updates freshrpms firefly extra
注意:若您是按照
上面網(wǎng)址線上安裝 for Fedora Core 2、Fedora Core 1 的 apt rpm 的話,就不用修改 sources.list 了,因?yàn)?a target="_blank" >apt-0.5.15cnc3-0.1.hcc.i386.rpm 的 sources.list 已經(jīng)修改過(guò)了。
1-7. APT 的使用 -- 底下列出幾個(gè)常用的指令
apt-get update
更新:這指令是用來(lái)取得記錄在 /etc/apt/sources.list 內(nèi)的遠(yuǎn)端伺服器的套件檔案清單, 在使用 「apt-get dist-upgrade」指令升級(jí)套件前,一定要記得先用這指令將套件檔案清單更新
apt-get dist-upgrade
升級(jí):這裡的升級(jí),並不是指由 Red Hat Linux 8.0 變成 9 這樣的升級(jí),而是當(dāng) Red Hat 有出升級(jí)的 rpm 的時(shí)候,我們就可以透過(guò)這個(gè)指令,升級(jí)我們已經(jīng)安裝的 rpm
Fedora Core 2 有出那些升級(jí)套件,由此網(wǎng)站可以得知:
http://download.fedora.redhat.com/pub/fedora/linux/core/updates/2/i386/Fedora Core 1 有出那些升級(jí)套件,由此網(wǎng)站可以得知:
http://download.fedora.redhat.com/pub/fedora/linux/core/updates/1/i386/Red Hat Linux 9 有出那些升級(jí)套件,由此網(wǎng)站可以得知:
https://rhn.redhat.com/errata/rh9-errata.html註:
APT 源自
Debian GNU/Linux,Debian 在同一個(gè)版本編號(hào)下,依套件成熟度又分 stable、testing、unstable。若我們現(xiàn)在用的是 Debina 3.0r2 stable,使用 apt-get upgrade 就可以升級(jí) for stable 的軟體,而使用 apt-get dist-upgrade 則可以選擇將系統(tǒng)由 stable 升級(jí)到 testing 或是 unstable,可是在 Red Hat linux 中並沒(méi)有這樣分,所以,使用 apt-get upgrade 和 apt-get dist-upgrade 的結(jié)果,基本上是一樣的,不過(guò) apt-get dist-upgrade 在升級(jí)的同時(shí)會(huì)為了解決相依性而安裝新套件,而 apt-get upgrade 並不會(huì),因此要升級(jí)的話,建議還是用 apt-get dist-upgrade 較佳
apt-cache search
搜尋:我們可以用這個(gè)指令來(lái)搜尋 rpm,例如:apt-cache search httpd,這樣檔名內(nèi)有 httpd 字眼的 rpm 都會(huì)出現(xiàn)了
apt-cache depends
相依性:我們可以用這個(gè)指令來(lái)看到某個(gè) rpm 的所有相依性檔案,例如:apt-cache depends httpd,這樣 httpd 的所有相依性檔案就會(huì)出現(xiàn)了,有時(shí)候不確定某個(gè)相依性檔案是屬於那個(gè) rpm 時(shí),這個(gè)指令就很有用
apt-get install
安裝:當(dāng)我們知道 rpm 名稱的時(shí)候,就可以用這指令安裝套件,例如:apt-get install httpd,這樣 apt 就會(huì)自動(dòng)上網(wǎng)下載 httpd rpm 回來(lái)安裝,若 httpd 有相依性套件的時(shí)候,apt 也會(huì)自動(dòng)下載安裝
apt-get clean
清除:當(dāng)使用 apt-get install 指令安裝套件,下載下來(lái)的 rpm 會(huì)放置於 /var/cache/apt/archives,使用 apt-get clean 指令可以將之清除,避免佔(zhàn)用硬碟空間
apt-get remove
移除:假如我們想要移除某個(gè) rpm 的時(shí)候就可以使用此指令,例如:apt-get remove httpd,就會(huì)移除 httpd 了,假如這個(gè) rpm 有相依性套件的時(shí)候,apt 也會(huì)一併移除
以上這幾個(gè)指令應(yīng)該就夠用了,若想要得到更進(jìn)一步的指令,請(qǐng)善用 man:)
1-8. 定期更新:
vi /etc/cron.daily/upgrade
#!/bin/sh
apt-get update
apt-get -y dist-upgrade
apt-get clean
chmod 755 /etc/cron.daily/upgrade
啟動(dòng) crond:chkconfig crond on
這樣電腦就會(huì)每天定時(shí) upgrade了(要結(jié)束前請(qǐng)執(zhí)行 /etc/cron.daily/upgrade,檢查看看有沒(méi)有錯(cuò)誤)
FAQ
1.如何為 apt 設(shè)定 proxy?
答:vi /etc/apt/apt.conf
找到
Proxy ""; // http://user:pass@host:port/
加進(jìn)你可用的 proxy,底下是以 交通大學(xué) 的 proxy 為範(fàn)例
Proxy "http://proxy.nctu.edu.tw:3128"; // http://user:pass@host:port/
2.如何讓 apt 自動(dòng)升級(jí) kernel,不需要用手動(dòng)升級(jí)?
答: vi /etc/apt/apt.conf
找到這一行
Allow-Duplicated { "^kernel$"; "^kernel-"; "^kmodule-"; "^gpg-pubkey$" };
刪掉紅字部分即可
3.X Window 相關(guān)
Mozilla 如何看 flash:apt-get install flash-plugin
XMMS 如何聽(tīng) MP3:apt-get install xmms-mp3
apt 的圖形介面:apt-get install synaptic
影音相關(guān):apt-get install mplayer xine totem
4.使用 apt 將 Red Hat Linux 9 升級(jí)到 Fedora Core 1
不負(fù)責(zé)任聲明:此操作過(guò)程,完全針對(duì)本人的軟硬體環(huán)境,請(qǐng)仔細(xì)評(píng)估操作所需承擔(dān)的風(fēng)險(xiǎn),若因操作造成任何損失,本人概不負(fù)責(zé):P
1.安裝 for RHL9 的 apt
rpm -ivh ftp://apt.nc.hcc.edu.tw/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm
2.修改 apt 伺服器來(lái)源
vi /etc/apt/sources.list
rpm ftp://apt.nc.hcc.edu.tw/pub/apt/fedora/linux/1 i386 os updates freshrpms firefly extra
3.升級(jí)
apt-get update;apt-get -y dist-upgrade;apt-get install fedora-release;apt-get clean;reboot
過(guò)程要是順利的話,升級(jí)完會(huì)自動(dòng)重新開(kāi)機(jī),就可以看到 Fedora Core 1 的登入畫(huà)面了
註:
1.中間若出現(xiàn)套件重複安裝的訊息,請(qǐng)先移除較小版本的套件,然後再執(zhí)行上面的步驟
2.升級(jí)的 RHL9 是採(cǎi)用最小安裝,只安裝 apache、sendmail、vsftpd 等伺服器,升級(jí)過(guò)程需下載一百多個(gè)套件,共一百多MB(詳細(xì)數(shù)字忘了:P)
3.RHL8 「應(yīng)該」也可以這樣升級(jí),RHL7.3以下版本(含RHL7.3)因?yàn)樘准町惿醮螅唤ㄗh用這種方式升級(jí),還是用光碟片升級(jí)較保險(xiǎn)