标题: 为redhat增加apt包管理功能
manux
版主
Rank: 7Rank: 7Rank: 7
荣誉版主



UID 11704
精华 22
积分 0(积分有什么用?)
帖子 4922
阅读权限 100
注册 2002-3-14
状态 离线
发表于 2003-2-25 11:45  资料  个人空间  短消息  加为好友 

Linux爱好者的盛会
为redhat增加apt包管理功能

一、 简介

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.nethttp://apt.unl.edu 等等,使得redhat也成为可以利用apt工具的发行版之一,本文介绍如何在redhat linux系统安装和使用apt软件包管理工具。

为了对apt工具的特性有一个大致的了解,下面先介绍几个使用apt with rpm管理系统的实例:

(1)删除一个软件包时自动删除相关软件包:

[root@linux root]# apt-get remove nessus-common
Processing File Dependencies... Done
Reading Package Lists... Done      
Building Dependency Tree... Done
The following packages will be REMOVED:
  nessus-client nessus-common nessus-server
0 packages upgraded, 0 newly installed, 3 to remove(replace) and 0 not upgraded.Need to get 0B of archives. After unpacking 4863kB will be freed.
Do you want to continue? [Y/n]
Executing RPM (-e)...
warning: /etc/nessus/nessusd.conf saved as /etc/nessus/nessusd.conf.rpmsave
[root@linux root]#


(2)自动下载安装依赖包:

[root@linux root]# apt-get install nessus-server
Processing File Dependencies... Done
Reading Package Lists... Done      
Building Dependency Tree... Done
The following extra packages will be installed:
  nessus-common nmap
The following NEW packages will be installed:
  nessus-common nessus-server nmap
0 packages upgraded, 3 newly installed, 0 to remove(replace) and 0 not upgraded.Need to get 1239kB of archives. After unpacking 4889kB will be used.
Do you want to continue? [Y/n]
Get:1 http://apt.freshrpms.net freshrpms/7.2/freshrpms nessus-common 1:1.1.12-fr1 [101kB]
Get:2 http://apt.freshrpms.net freshrpms/7.2/freshrpms nessus-server 1:1.1.12-fr1 [895kB]
Get:3 http://apt.freshrpms.net redhat/i386/7.2/os nmap 2.54BETA22-3 [243kB]   
Fetched 1239kB in 54s (22.8kB/s)                                               
Executing RPM (-U)...
Preparing...                ########################################### [100%]
   1:nessus-common          ########################################### [ 33%]
   2:nmap                   ########################################### [ 66%]
   3:nessus-server          ########################################### [100%]
[root@linux root]#


(3)维护系统软件,自动更新系统 :

[root@linux root]# apt-get upgrade
Processing File Dependencies... Done
Reading Package Lists... Done      
Building Dependency Tree... Done
The following packages will be upgraded
  at libxml2 libxml2-devel openldap openldap-clients openldap-devel rsync
7 packages upgraded, 0 newly installed, 0 to remove(replace) and 0 not upgraded.Need to get 2132kB of archives. After unpacking 560kB will be freed.
Do you want to continue? [Y/n]
Get:1 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os at 3.1.8-23 [42.6kB]
Get:2 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os libxml2 2.4.10-0.7x.2 [360kB]
Get:3 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os libxml2-devel 2.4.10-0.7x.2 [617kB]
Get:4 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os openldap 2.0.21-1 [424kB]
Get:5 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os openldap-clients 2.0.21-1 [114kB]
Get:6 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os openldap-devel 2.0.21-1 [462kB]
Get:7 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os rsync 2.4.6-8 [112kB]
Fetched 2132kB in 3m8s (11.3kB/s)                                             
Executing RPM (-U)...
Preparing...                ########################################### [100%]
   1:libxml2                ########################################### [ 14%]
   2:rsync                  ########################################### [ 28%]
   3penldap               ########################################### [ 42%]
   4penldap-clients       ########################################### [ 57%]
   5penldap-devel         ########################################### [ 71%]
   6:at                     ########################################### [ 85%]
   7:libxml2-devel          ########################################### [100%]
[root@linux root]#


二、安装apt with rpm及其图形界面前端Synaptic

下面简单介绍一下如何下载和安装apt with rpm
apt with rpm可以直接到 http://freshrpms.net 下载安装,目前该站点提供了redhat 6.2, 7.x和8.0的软件升级服务,下面是几个常用redhat版本的apt下载地址:

redhat 6.2
http://ftp.freshrpms.net/pub/fre ... 7-fr0.62.1.i386.rpm

redhat 7.2
http://ftp.freshrpms.net/pub/fre ... 9cnc55-fr7.i386.rpm

redhat 7.3
http://ftp.freshrpms.net/pub/fre ... 386.rpm
redhat 8.0


http://ftp.freshrpms.net/pub/fre ... .4cnc9-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 update
[root@linux root]# apt-get install synaptic

在几行提示之后Synaptic就安装好了,进入Xwindow,Synaptic会出现在“系统设置”菜单里面。[Fixme: redhat 7.x版本Synaptic出现在哪里?]

三、使用apt

在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-rpm

(1)添加软件资源列表
在apt-rpm系统里面添加软件资源非常容易,只需要按照提供apt服务的服务器的说明在/etc/apt/sources.list里面加入对网站的描述即可。

这一行参数的格式为:

    rpm uri distribution [component1] [componenent2] [...]
   
其中,uri为软件资源的地址,可以是http,ftp,file等URL地址,distribution是redhat发行版本,如 7.2,7.3,8.0等等,后面的component可以忽略。有时候可能只对某软件资源的一或几部分部分感兴趣,那么可以在这里明确指出。   

例如添加http://apt.unl.edu/提供的redhat KDE 3.1的测试软件包,只需要在sources.list里面添加一行:

rpm [url]ftp://apt.unl.edu/apt/[/url] 8.0 kde3-test

就将该网站的kde3部分加入了列表。

下面是一些目前可以用于redhat 的apt-rpm软件资源列表,把它们加入你的 /etc/apt/sources.list 文件就可以通过apt-rpm使用他们提供的redhat软件更新和维护了,参看网站说明。(前面是网站名,后面是适用redhat版本和简介)


http://apt.freshrpms.net/ - Red Hat Linux 6.2, 7.x and 8.0 repositories (with all freshrpms included of course!)
http://www.linux.cz/apt-rpm/ - Red Hat Linux 7.x repositories (with all freshrpms included too!)
http://apt-rpm.tuxfamily.org/ - Red Hat Linux 6.2, 7.x and 8.0 repositories
http://apt.nlc.no/apt/ - Red Hat Linux 6.2, 7.x and Rawhide repositories
http://ftp.uninett.no/pub/linux/apt/ - Red Hat Linux 6.2, 7.x, 8.0 and Rawhide repositories
http://redhat.usu.edu/ - Red Hat Linux 7.2, 7.3 and 8.0 repositories
ftp://mirror.pa.msu.edu/apt/ - Red Hat Linux 7.2, 7.3 and 8.0 repositories
http://apt-rpm.codefactory.se/ - Red Hat Linux 7.2, 7.3 and 8.0 and gnomehide repositories
http://apt.42h.de/ - Red Hat Linux 7.2, 7.3 and 8.0 repositories
http://apt.toggletext.com.au/ - A few Red Hat Linux 7.2 custom packages
http://people.ecsc.co.uk/~matt/repository.html - Lots of custom Red Hat Linux 8.0 GNOME 2 and related packages
http://ftp-stud.fht-esslingen.de/apt/ - Red Hat Linux 7.x, 8.x and rawhide
http://apt.unl.edu/ - Red Hat Linux 7.3 and 8.0
http://kde-redhat.sourceforge.net/ - KDE for Red Hat project

(2)把redhat安装盘添加到软件源

有的时候需要从redhat安装光盘或者iso文件安装、卸载软件,这时可以把redhat安装光盘设置为软件源。这种工作方式需要首先扫面安装光盘上的软件包,并在 /var/lib/apt/cdroms.list文件中建立光盘软件列表。

如果使用redhat光盘,只需要把光盘插入光驱,下面命令会自动mount光盘并建立列表

[root@linux root]# apt-cdrom  add

如果是使用ISO文件安装,首先mount ISO文件到mount-point,把mount point输入,就可以自动搜索RPM软件列表了。

[root@linux root]# apt-cdrom -m -d mount-point  add

如果是解开的硬盘映像安装,只需要把路径输入,就可以自动搜索RPM软件列表了。

[root@linux root]# apt-cdrom -m -d path  add

五 实例

(1)安装mplayer

[root@linux root]# apt-get install mplayer
Reading Package Lists... Done
Collecting File Provides... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  aalib libdv libdvdcss libdvdcss-devel libdvdread libdvdread-devel lirc
  xvidcore
The following packages will be upgraded
  libdvdcss libdvdcss-devel libdvdread libdvdread-devel
The following NEW packages will be installed:
  aalib libdv lirc mplayer xvidcore
4 packages upgraded, 5 newly installed, 0 removed and 14 not upgraded.
Need to get 5417kB/5471kB of archives.
After unpacking 15.3MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms aalib 1.4rc5-fr1 [104kB]
Get:2 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms libdv 0.99-fr1 [240kB]
Get:3 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms libdvdread-devel 0.9.4-fr2 [63.4kB]
Get:4 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms libdvdread 0.9.4-fr2 [56.3kB]
Get:5 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms lirc 0.6.5-fr3 [373kB]
Get:6 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms xvidcore 0.9.0-fr3 [159kB]
Get:7 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms mplayer 0.90-fr0.5rc4 [4422kB]
Fetched 5417kB in 31s (174kB/s)                                                
Executing RPM (-Uvh)...
warning: /var/cache/apt/archives/aalib_1.4rc5-fr1_i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
Preparing...                ########################################### [100%]
   1:aalib                  ########################################### [ 11%]
   2:libdv                  ########################################### [ 22%]
   3:libdvdcss-devel        ########################################### [ 33%]
   4:libdvdcss              ########################################### [ 44%]
   5:libdvdread-devel       ########################################### [ 56%]
   6:libdvdread             ########################################### [ 67%]
   7:lirc                   ########################################### [ 78%]
   8:xvidcore               ########################################### [ 89%]
   9:mplayer                ########################################### [100%]

注:有两个包曾经下载过,所以本次不再下载。

(2)安装kde 3.1 for redhat 的测试包
定义资源:为了简单,把下面一行加入/etc/apt/sources.list,并暂时把其它资源列表注释掉

rpm [url]ftp://apt.unl.edu/apt/[/url] 8.0 kde3-test

执行完整升级:

[root@linux root]# apt-get dist-upgrade

OK, 体验一下KDE 3.1的新特性吧!


六 其它资源
http://apt4rpm.sourceforge.net/ - General information and scripts to create repositories (focused initially on SuSE)

顶部
manux
版主
Rank: 7Rank: 7Rank: 7
荣誉版主



UID 11704
精华 22
积分 0(积分有什么用?)
帖子 4922
阅读权限 100
注册 2002-3-14
状态 离线
发表于 2003-2-26 09:29  资料  个人空间  短消息  加为好友 
apt前端Synaptic的屏幕截图

正在进行dist-upgrade



 附件: 您所在的用户组无法下载或查看附件
顶部
不容错过的IBM 集群技术资源汇总
manux
版主
Rank: 7Rank: 7Rank: 7
荣誉版主



UID 11704
精华 22
积分 0(积分有什么用?)
帖子 4922
阅读权限 100
注册 2002-3-14
状态 离线
发表于 2003-2-26 09:30  资料  个人空间  短消息  加为好友 
apt前端Synaptic的屏幕截图

察看软件倚赖



 附件: 您所在的用户组无法下载或查看附件
顶部
nielinjie
新生入学
Rank: 1
注册用户



UID 36705
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2003-2-14
状态 离线
发表于 2003-2-26 20:50  资料  个人空间  短消息  加为好友  ICQ 状态
我的apt-get install随便什么东西都不行,check的时候有这个提示,install也一样,说有两个gaim的版本,叫我去删掉一个,可是,怎么删嗫.

[root@localhost tools]# apt-get check
Reading Package Lists... Error!
E: There are two or more versions of the package 'gaim' installed in your system, which is a situation APT can't handle cleanly at the moment.
Please do one of the following:
1) Keep at most one version of the package in the system; or
2) If you do want to keep multiple versions of that package, lookup RPM::Allow-Duplicated in the documentation.

E: Error occured while processing gaim (UsePackage2)
E: Problem with MergeList /var/lib/rpm/Packages
E: The package lists or status file could not be parsed or opened.

顶部
manux
版主
Rank: 7Rank: 7Rank: 7
荣誉版主



UID 11704
精华 22
积分 0(积分有什么用?)
帖子 4922
阅读权限 100
注册 2002-3-14
状态 离线
发表于 2003-2-26 21:06  资料  个人空间  短消息  加为好友 
有两个版本的gaim可不好办,估计有一个是gaim 0.58+QQ, 你可以用

rpm -e gaim

卸载,然后再把0.58版本的用

rpm -Uhv --force gaim-0.58.x.i386.rpm

强行升级一次,如果能改正错误最好,如果还是不能改正错误,编辑/etc/apt/apt.conf,找到里面 RPM { }中含有 Allow-Duplicated的一行,在后面 { }里面添加 "gaim" 。

顶部
不容错过的IBM 集群技术资源汇总
bdog
新生入学
Rank: 1
注册用户



UID 12227
精华 0
积分 0(积分有什么用?)
帖子 5
阅读权限 10
注册 2002-3-24
状态 离线
发表于 2003-2-27 16:20  资料  个人空间  短消息  加为好友 
感谢

thanks.
正解我升级之苦。

顶部
nielinjie
新生入学
Rank: 1
注册用户



UID 36705
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2003-2-14
状态 离线
发表于 2003-3-1 23:27  资料  个人空间  短消息  加为好友  ICQ 状态
安装的时候出了点问题,apt-get的时候出错,请问怎么办啊


Reading Package Lists... Error!
E: There are two or more versions of the package 'kde-i18n-Chinese' installed in your system, which is a situation APT can't handle cleanly at the moment.
Please do one of the following:
1) Keep at most one version of the package in the system; or
2) If you do want to keep multiple versions of that package, lookup RPM::Allow-Duplicated in the documentation.

E: Error occured while processing kde-i18n-Chinese (UsePackage2)
E: Problem with MergeList /var/lib/rpm/Packages
E: The package lists or status file could not be parsed or opened.

顶部
manux
版主
Rank: 7Rank: 7Rank: 7
荣誉版主



UID 11704
精华 22
积分 0(积分有什么用?)
帖子 4922
阅读权限 100
注册 2002-3-14
状态 离线
发表于 2003-3-2 09:45  资料  个人空间  短消息  加为好友 
这不是和gaim的情况一样吗?同样处理就行了

顶部
nielinjie
新生入学
Rank: 1
注册用户



UID 36705
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2003-2-14
状态 离线
发表于 2003-3-2 15:03  资料  个人空间  短消息  加为好友  ICQ 状态
gaim的解决是在apt-get里设置可以允许多版本,可是kde我觉得最好还是保持一个版本的好,怎么得到程序的版本信息并且选择一个版本来删掉嗫.
253

顶部
MastLinux
小试牛刀
Rank: 2
注册用户



UID 18432
精华 0
积分 0(积分有什么用?)
帖子 204
阅读权限 10
注册 2002-6-29
来自 北京
状态 离线
发表于 2003-3-3 19:10  资料  个人空间  短消息  加为好友 
KDE3.1升级失败

系统提示找不到相关的文件 0 个文件升级





我学故我灌,我灌我提高 =KING= ★★★★ 风清云淡,我心飞翔 ! ☆ CT ☆ 游戏生活,游戏linux!
顶部
 



当前时区 GMT+8, 现在时间是 2008-5-13 21:31

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.087075 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP