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