为Redhat操作系统增加APT软件包管理工具

文章作者 100test 发表时间 2007:09:06 12:06:58
来源 100Test.Com百考试题网


  一、 简介

redhat采用了RPM软件包管理系统,RPM软件包管理系统具有强大的编译安装功能,但是由于历史原因,RPM软件包管理系统对软件之间的依存关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的软件依赖问题。

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软件包管理工具。

为了对apt工具的特性有一个大致的了解,下面先介绍几个使用apt with rpm管理系统的实例:
(1)删除一个软件包时自动删除相关软件包:
[root@linux root]# apt-get remove nessus-common

2)自动下载安装依赖包:
[root@linux root]# apt-get install nessus-server

(3)维护系统软件,自动更新系统 :
[root@linux root]# apt-get upgrade

  二、APT 简易运作原理

我们的机器安装了 APT 套件之后就成了 APT 的使用者端,当我们在安装、升级 RPM 的时候,事实上,都是透过网络连到远程的 APT 服务器去下载 RPM 回来安装的,APT 服务器我们是可以自己指定的,而 APT 使用者端也可以同时成为 APT 服务器(在第二节我们会讲到 APT 服务器的架设)

apt-get 0update 指令会同步使用者端和 APT 服务器的 RPM 索引清单(package list),APT 服务器的 RPM 索引清单置于 base 资料夹内(base 数据夹是由 genbasedir 指令所产生),使用者端计算机取得 base 资料夹内的 bz2 RPM 索引清单压缩文件后,会将其解压置放于 /var/state/apt/lists/,而使用者使用 apt-get install 或 apt-get dist-upgrade 指令的时候,就会将这个资料夹内的资料和使用者端计算机内的 RPM 数据库比对,如此一来就可以知道那些 RPM 已安装、未安装、或是可以升级的,所以一旦 APT 服务器内的 RPM 有所更动,一定要记得使用 genbasedir 指令产生新的RPM索引清单。

  三、安装apt with rpm及其图形界面前端synaptic

下面简单介绍一下如何下载和安装apt with rpm
apt with rpm可以直接到 [url]http://freshrpms.net[/url] 下载安装,目前该站点提供了redhat 6.2, 7.x和8.0的软件升级服务,下面是几个常用redhat版本的apt下载地址:
redhat 6.2 http://ftp.freshrpms.net/pub/freshrpms/redhat/6.2/apt/apt-0.5.4cnc7-fr0.62.1.i386.rpm
redhat 7.2 http://ftp.freshrpms.net/pub/freshrpms/redhat/7.2/apt/apt-0.3.19cnc55-fr7.i386.rpm
redhat 7.3 http://ftp.freshrpms.net/pub/freshrpms/redhat/7.3/apt/apt-0.5.4cnc9-fr0.1.rh73.i386.rpm
redhat 8.0 http://ftp.freshrpms.net/pub/freshrpms/redhat/8.0/apt/apt-0.5.4cnc9-fr1.i386.rpm
redhat 9.0 http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm
下载后使用rpm命令安装:

[root@linux root]# rpm -ihv apt-0.5.4cnc9-fr1.i386.rpm
freshrpms.net同时提供了一个图形界面的apt-rpm接口synaptic,使用图形界面的apt更加方便,安装了apt后,可以直接利用apt安装synaptic:
[root@linux root]# apt-get 0update
[root@linux root]# apt-get install synaptic
在几行提示之后Synaptic就安装好了,进入Xwindow,synaptic会出现在“系统设置”菜单里面。

  使用apt

在redhat上面使用apt和在debian下面使用几乎完全一样,配置文件在/etc/apt/,按照前面介绍安装好apt之后就可以使用并可以更新redhat提供的RPM更新以及freshrpms.net提供的更新了。主要运行命令如下:

(1)更新软件列表,获取远程rpm服务器上的软件列表和相互依赖关系列表,所有可用软件的下载地址都在/etc/apt/sources.list里面定义,下面的多数下载操作地址也是在这里定义的。
[root@linux root]# apt-get 0update

(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

(8)apt-cache showpkg
显示软件包的一些常规信息
[root@linux root]# apt-cache showpkg openssh

(9)apt-cache stats
显示相关的统计信息显示相关的统计信息

(10)apt-cache dump
显示缓存中的每个软件包的简要描述信息

(11)apt-cache unmet
显示不符合一致性的依赖关系

(12)apt-cache show
显示指定软件包的记录信息。类似于rpm -qi

(13)apt-cache search
查找软件包,类似于rpm -qa|grep package_name
例: apt-cache search openssh

(14)apt-cache depends
显示软件包的依赖性关系

(15)apt-cache pkgnames
列出所有的软件包
例: $ apt-cache pkgnames openss
openssh-askpass
openssl096
openssl-perl
openssl095a
openssl-python
openssh-clients
openssl-devel
openssh-askpass-gnome
openssh
openssl
openssh-server



相关文章


Linux下如何阅读PDF_CHM等格式文档
Linux操作系统管理--日志管理和分析
压缩命令-vi-认识SHELL-正规表示法
Apache源代码全景分析:网络地址处理
为Redhat操作系统增加APT软件包管理工具
Linux程序设计入门系统进程的详细介绍
Linux文件系统损坏后的修复技巧详细介绍
Linux服务器下多网卡负载均衡的研究
优化Linux系统的硬盘解决磁盘碎片化
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛