Linux基础教程:APT 的安装、使用


前言

您使用什么方法在管理你的 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)因为套件差异甚大,不建议用这种方式升级,还是用光碟片升级较保险

相关内容