wpeng 2010-04-30
用APT维护Red Hat Enterprise Linux 4.0 (RHEL)
内容简介
如何用APT(AdvancedPackagingTool)维护RedHatEnterpriseLinux(RHEL),提供对个别RHEL的用户无法升级的问题的解决办法。关键词:APT,Linux,升级,RedHatEnterpriseLinux,RHEL,YUM,RPM,依赖性
几句前言
redhat采用了RPM软件包管理系统,RPM软件包管理系统具有强大的编译安装功能,但是由于历史原因,RPM软件包管理系统对软件之间的依存关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的软件依赖问题。Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装A软件,但是编译的时候告诉你X软件安装之前需要B软件,而当你安装Y软件的时候,又告诉你需要Z库了--好不容易安装好Z库,发现版本还有问题......可能很多朋友都有过这个经历。debian系统则基于apt(AdvancedPackagingTool)工具进行软件包管理,可以自动解决并安装倚赖软件包,因此debianlinux被认为是最容易管理和升级的系统,apt工具也被认为是目前最好的软件包管理工具之一。为了解决redhat包管理系统的致命问题,ConectivaLinux将apt系统移植到了使用rpm软件包管理系统的Linux系统下,使得基于RPM软件包的系统可以利用apt工具提供的自动解决倚赖关系的能力。
目前已经有很多为redhatlinux提供apt方式升级管理软件包的站点,如http://freshrpms.net,http://apt.unl.edu等等,使得redhat也成为可以利用apt工具的发行版之一,本文介绍如何在redhatlinux系统安装和使用apt软件包管理工具。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如
Yellow
Dog的YUM,
Debian
的APT(AdvancedPackagingTool)等。而这些软件也被开源软件爱好者们逐渐移植到别的发行版上。
Redhat企业版Linux的的升级往往给管理员们带来不少问题:网站下载速度太慢,不够安全,当然了,更多的人是无法更新的--版权问题。经过一段时间的比较,感觉使用APT维护RHEL有着特殊的便利性。(有的朋友可能会说,yum也不错阿!是的,yum在很多时候表现的确不错,不过如果使用的Linux是RHEL的话,很难找到适合yum的资料库,"巧妇难为无米之炊"。)现在把具体方法介绍给大家作为参考。
APT基本介绍
DebianGNU/Linux是APT的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。
APT和其他软件管理工具的比较。在基于RPM的Linux平台上,有很多其他的软件包管理工具,如:autorpm、rpmfind、up2date/RHUN、urpmi/rpmdrake/MandrakeUpdate等等。我们下面就对这些工具进行比较。
依赖性发现只在某些情况下有效。一般来说所有工具都需要服务器上有一个特殊的软件包索引文件。该文件包含有软件包信息。但是它们是一般文件,可以从其他的镜象服务器上下载。?软件包验证用来验证下载的软件包的正确性;镜象服务器验证实现验证镜象服务器和正式服务器的内容是否一致。这些特性是ATP-RPM所独有的,而Debian的APT则不具有这些特性。当升级软件包时显示升级的原因。这样管理员就可以了解升级软件包是由于安全原因或功能升级。从上面的表中可以看到ATP和其他工具相比较具有更好的功能优势。因此对于基于RPM软件包管理的平台,如:Redhat、TurboLinux、SuSe、Mandrake等等,APT是一个非常优秀的软件管理工具。
安装与配置
首先让我们安装APT工具及freshrpms,freshrpms.net同时提供了一个图形界面的apt-rpm接口Synaptic,使用图形界面的apt更加方便,安装了apt后,可以直接利用apt安装Synaptic:
#wgethttp://redhat.uni-klu.ac.at/el3/apt.i386.rpm
#rpm-Uvhapt.i386.rpm
[root@linuxroot]#apt-getupdate
[root@linuxroot]#apt-getinstallsynaptic
安装够简单吧?我们要编辑配置文件:
#vi/etc/apt/sources.list.d/dag.list
添加如下内容(资料库相关的信息):
rpmhttp://afs.caspur.it/afs/italia/project/linux/cern/slc302/i386/aptosupdatesextras
rpmhttp://redhat.uni-klu.ac.atredhat/dag/el3/i386dag
rpm-srchttp://redhat.uni-klu.ac.atredhat/dag/el3/i386dag
rpmhttp://apt.sw.beredhat/el3/en/i386dag
rpm-srchttp://apt.sw.beredhat/el3/en/i386dag
注:第一条http://afs.caspur.it/的资料库几乎就是Redhat官方站点的内容。在写这篇文章的时候还是有效的。如果要尝试更新Kernel,还可以在第一条后面添加 kernel26.
如果需要更多Java相关软件,则:
#vi/etc/apt/sources.list.d/jpackage.list
(这一步是可选的)添加如下内容:
rpmhttp://redhat.uni-klu.ac.atredhat/jpackage/redhat-es-3/i386freedevel
rpm-srchttp://redhat.uni-klu.ac.atredhat/jpackage/redhat-es-3/i386freedevel
rpmhttp://redhat.uni-klu.ac.atredhat/jpackage/redhat-es-3/genericfreedevel
rpm-srchttp://redhat.uni-klu.ac.atredhat/jpackage/redhat-es-3/genericfreedevel
如果要更新KDE的话(这一步可选的):
#vi/etc/apt/sources.list.d/kde.list
考虑添加如何内容:
rpmhttp://apt.kde-redhat.orgapt/fedora/3.0stable
rpmhttp://apt.kde-redhat.orgapt/fedora/allstable
rpmhttp://apt.kde-redhat.orgapt/kde-redhat/3.0stableunstable
rpmhttp://apt.kde-redhat.orgapt/kde-redhat/allstableunstable
当然,这些内容是经过笔者验证的,都是可用的。从一些站点上下载的list似乎都多多少少有点问题。
注:如果您发现上述的资料库失效或者是有什么更好的资料库。烦请通知我:[email protected].
使用简介
使用相对来说比较简单:在redhat上面使用apt和在debian下面使用几乎完全一样,配置文件在/etc/apt/,按照前面介绍安装好apt之后就可以使用并可以更新redhat提供的RPM更新以及freshrpms.net提供的更新了。主要运行命令如下:
(1)更新软件列表,获取远程rpm服务器上的软件列表和相互依赖关系列表,所有可用软件的下载地址都在/etc/apt/sources.list里面定义,下面的多数下载操作地址也是在这里定义的。
[root@linuxroot]#apt-getupdate
(2)检查本地软件依赖关系合法性,由于rpm系统的问题,很多系统会存在一些依赖问题,用下面命令检查依赖关系,同时apt-get会提供一些修复方案,只有本机没有依赖关系问题了才能良好地使用apt-rpm。一个新安装的干净系统不会有依赖关系问题。
[root@linuxroot]#apt-getcheck
(3)安装或升级一个新软件
[root@linuxroot]#apt-getinstallpackage-name
package-name是rpm包的名字的前面部分,不包含版本号,如果选择不同的处理器类型,可以在后面添加@i686等标识。
(4)升级所有系统软件
[root@linuxroot]#apt-getupgrade
(5)全面升级,比upgrade更加智能化的升级,同时解决升级时的一些依赖关系
[root@linuxroot]#apt-getdist-upgrade
(6)卸载软件,同时卸载依赖软件
[root@linuxroot]#apt-getremovepackage-name
(7)清除本地下载的rpm包,rpm包下载后保存在/var/cache/apt/archieves下面,本命令清除已下载安装过的rpm文件
[root@linuxroot]#apt-getclean
以上所有命令都可以通过图形界面的前端软件Synaptic完成,图形化的软件使用起来更加直观,理解了前面几个主要命令,就可以毫无困难地使用Synaptic了,所以本文不再赘述Synaptic的使用方法了。
#apt-getupdate //更新软件列表
#apt-getupgrade //升级所有系统软件
#apt-getcheck//检查依赖性
#apt-get-finstall//解决依赖性问题
#apt-cacheshowpkg//显示软件包的一些常规信息
#apt-cacheshow//显示指定软件包的记录信息。类似于rpm-qi
#apt-cachedepends//显示软件包的依赖性关系
#apt-cachepkgnames//列出所有的软件包
#apt-configdump//显示目前的配置信息。
如果要安装某工具,比如说iftop,可以这样:
#apt-cachesearchiftop
#apt-getinstalliftop
apt自动解决依赖性问题,方便得很。
要注意的是需要导入相应资料库的签名。在相关站点下载GPGkey之后,用如下命令导入即可:
#rpm--importTheKey_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@mailmansrc]#rpm-ivhapt-0.5.5cnc6-fr1.i386.rpm
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25799/showart_195675.html