如何用APT维护Red Hat Enterprise Linux 4.0 (RHEL)用APT维护Red Hat Enterprise Linux 4.0 (RHEL)内容简
如何用APT维护Red Hat Enterprise Linux 4.0 (RHEL)
用APT维护Red Hat Enterprise Linux 4.0 (RHEL)
内容简介
如何用APT(Advanced Packaging Tool)维护Red Hat Enterprise Linux (RHEL),提供对个别RHEL的用户无法升级的问题的解决办法。关键词:APT,Linux,升级,Red Hat Enterprise Linux,RHEL,YUM,RPM,依赖性
几句前言
redhat采用了RPM软件包管理系统,RPM软件包管理系统具有强大的编译安装功能,但是由于历史原因,RPM软件包管理系统对软件之间的依存关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的软件依赖问题。Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装A软件,但是编译的时候告诉你X软件安装之前需要B软件,而当你安装Y软件的时候,又告诉你需要Z库了--好不容易安装好Z库,发现版本还有问题......可能很多朋友都有过这个经历。debian系统则基于apt(Advanced Packaging Tool)工具进行软件包管理,可以自动解决并安装倚赖软件包,因此debian linux被认为是最容易管理和升级的系统,apt工具也被认为是目前最好的软件包管理工具之一。为了解决redhat包管理系统的致命问题,Conectiva Linux将apt系统移植到了使用rpm软件包管理系统的Linux系统下,使得基于RPM软件包的系统可以利用apt工具提供的自动解决倚赖关系的能力。
目前已经有很多为redhat linux提供apt方式升级管理软件包的站点,如http://freshrpms.net , http://apt.unl.edu等等,使得redhat也成为可以利用apt工具的发行版之一,本文介绍如何在redhat linux系统安装和使用apt软件包管理工具。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如
Yellow
Dog的YUM ,
Debian
的APT(Advanced Packaging Tool)等。而这些软件也被开源软件爱好者们逐渐移植到别的发行版上。
Redhat企业版Linux的的升级往往给管理员们带来不少问题:网站下载速度太慢,不够安全,当然了,更多的人是无法更新的--版权问题。经过一段时间的比较 ,感觉使用APT维护RHEL有着特殊的便利性。 (有的朋友可能会说,yum 也不错阿!是的,yum在很多时候表现的确不错,不过如果使用的Linux是RHEL的话,很难找到适合yum的资料库,"巧妇难为无米之炊"。) 现在把具体方法介绍给大家作为参考。
APT基本介绍
? ? Debian GNU/Linux 是APT的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。
? ? APT和其他软件管理工具的比较。在基于RPM的Linux平台上,有很多其他的软件包管理工具,如:autorpm、rpmfind、up2date/RHUN、urpmi/rpmdrake/Mandrake Update等等。我们下面就对这些工具进行比较。

依赖性发现只在某些情况下有效。
一般来说所有工具都需要服务器上有一个特殊的软件包索引文件。该文件包含有软件包信息。但是它们是一般文件,可以从其他的镜象服务器上下载。
?软件包验证用来验证下载的软件包的正确性;镜象服务器验证实现验证镜象服务器和正式服务器的内容是否一致。
这些特性是ATP-RPM所独有的,而Debian的APT则不具有这些特性。
当升级软件包时显示升级的原因。这样管理员就可以了解升级软件包是由于安全原因或功能升级。
? ? 从上面的表中可以看到ATP和其他工具相比较具有更好的功能优势。因此对于基于RPM软件包管理的平台,如:Redhat、TurboLinux、SuSe、Mandrake等等,APT是一个非常优秀的软件管理工具。
安装与配置
? ? 首先让我们安装APT工具及freshrpms,freshrpms.net同时提供了一个图形界面的apt-rpm接口Synaptic,使用图形界面的apt更加方便,安装了apt后,可以直接利用apt安装Synaptic:
# wget http://redhat.uni-klu.ac.at/el3/apt.i386.rpm
# rpm -Uvh apt.i386.rpm
[root@linux root]# apt-get update
[root@linux root]# apt-get install synaptic
安装够简单吧? 我们要编辑配置文件:
#vi /etc/apt/sources.list.d/dag.list??
添加如下内容(资料库相关的信息):
rpm http://afs.caspur.it/ afs/italia/project/linux/cern/slc302/i386/apt os updates extras
rpm http://redhat.uni-klu.ac.at redhat/dag/el3/i386 dag
rpm-src http://redhat.uni-klu.ac.at redhat/dag/el3/i386 dag
rpm http://apt.sw.be redhat/el3/en/i386 dag
rpm-src http://apt.sw.be redhat/el3/en/i386 dag
? ? 注: 第一条http://afs.caspur.it/ 的资料库几乎就是Redhat官方站点的内容。在写这篇文章的时候还是有效的。如果要尝试更新Kernel,还可以在第一条后面添加 kernel26 .
如果需要更多Java相关软件,则:
#vi /etc/apt/sources.list.d/jpackage.list??
(这一步是可选的)添加如下内容:
rpm http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/i386 free devel
rpm-src http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/i386 free devel
rpm http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/generic free devel
rpm-src http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/generic free devel
如果要更新KDE的话(这一步可选的):
#vi /etc/apt/sources.list.d/kde.list??
考虑添加如何内容:
rpm http://apt.kde-redhat.org apt/fedora/3.0 stable
rpm http://apt.kde-redhat.org apt/fedora/all stable
rpm http://apt.kde-redhat.org apt/kde-redhat/3.0 stable unstable
rpm http://apt.kde-redhat.org apt/kde-redhat/all stable unstable
? ? 当然,这些内容是经过笔者验证的,都是可用的。从一些站点上下载的list 似乎都多多少少有点问题。
注: 如果您发现上述的资料库失效或者是有什么更好的资料库。烦请通知我: DBAnotes@gmail.com .
使用简介
? ? 使用相对来说比较简单: 在redhat上面使用apt和在debian下面使用几乎完全一样,配置文件在/etc/apt/,按照前面介绍安装好apt之后就可以使用并可以更新redhat提供的RPM更新以及freshrpms.net提供的更新了。主要运行命令如下:
(1)更新软件列表,获取远程rpm服务器上的软件列表和相互依赖关系列表,所有可用软件的下载地址都在/etc/apt/sources.list里面定义,下面的多数下载操作地址也是在这里定义的。
[root@linux root]# apt-get update
(2)检查本地软件依赖关系合法性,由于rpm系统的问题,很多系统会存在一些依赖问题,用下面命令检查依赖关系,同时apt-get会提供一些修复方案,只有本机没有依赖关系问题了才能良好地使用apt-rpm。一个新安装的干净系统不会有依赖关系问题。
[root@linux root]# apt-get check
(3)安装或升级一个新软件
[root@linux root]# apt-get install package-name
package-name是rpm包的名字的前面部分,不包含版本号,如果选择不同的处理器类型,可以在后面添加@i686等标识。
(4)升级所有系统软件
[root@linux root]# apt-get upgrade
(5)全面升级,比upgrade更加智能化的升级,同时解决升级时的一些依赖关系
[root@linux root]# apt-get dist-upgrade
(6)卸载软件,同时卸载依赖软件
[root@linux root]# apt-get remove package-name
(7)清除本地下载的rpm包,rpm包下载后保存在/var/cache/apt/archieves下面,本命令清除已下载安装过的rpm文件
[root@linux root]# apt-get clean
以上所有命令都可以通过图形界面的前端软件Synaptic完成,图形化的软件使用起来更加直观,理解了前面几个主要命令,就可以毫无困难地使用Synaptic了,所以本文不再赘述Synaptic的使用方法了。
#apt-get update //更新软件列表
#apt-get upgrade //升级所有系统软件
#apt-get check? ? //检查依赖性
#apt-get -f install??// 解决依赖性问题
#apt-cache showpkg? ?//显示软件包的一些常规信息
? ?? ?#apt-cache show? ?? ?//显示指定软件包的记录信息。类似于rpm -qi
? ?? ?#apt-cache depends? ?//显示软件包的依赖性关系
? ?? ?#apt-cache pkgnames??//列出所有的软件包
? ?? ?#apt-config dump? ???//显示目前的配置信息。
如果要安装某工具,比如说iftop,可以这样:
#apt-cache search iftop
#apt-get install iftop??
apt自动解决依赖性问题,方便得很。
要注意的是需要导入相应资料库的签名。在相关站点下载GPG key之后,用如下命令导入即可:
#rpm --import TheKey_youDownload
如果有耐心看到这里的话,可以发现盗版的用户或者是用RHEL进行测试的朋友可以通过这个进行升级了--要不然RHEL的up2date 总是要你输入认证信息的。
参考信息
APT-howto
- http://www.debian.org/doc/manuals/apt-howto/index.en.html
其他版本的APT使用问题和一些使用技巧请参考这里:
http://dag.wieers.com/home-made/apt/FAQ.php
http://www2.uni-klu.ac.at/support/Redhat
http://linuxwiki.de/apt/RedHat
http://apt4rpm.sourceforge.net/
ftp://rpmfind.net/linux/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm
[root@mailman src]# rpm -ivh apt-0.5.5cnc6-fr1.i386.rpm
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25799/showart_195675.html