歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:APT 的安裝、使用

Linux基礎教程:APT 的安裝、使用

日期:2017/2/28 16:18:42   编辑:Linux教程

前言

您使用什麼方法在管理你的 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)因為套件差異甚大,不建議用這種方式升級,還是用光碟片升級較保險

Copyright © Linux教程網 All Rights Reserved