hew 发表于 2004-7-2 19:30:42

使用apt-rpm 简化你的rh,fc rpm包管理

这篇文章本来公社好像是有的,但今天整理精华区发现没了,所以再发一边,并稍微做些修改。


使用apt-rpm 简化你的redhat,fedora rpm包管理

一、 简介

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

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

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

# 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?
Executing RPM (-e)...
warning: /etc/nessus/nessusd.conf saved as /etc/nessus/nessusd.conf.rpmsave
#


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

# 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?
Get:1 http://apt.freshrpms.net freshrpms/7.2/freshrpms nessus-common 1:1.1.12-fr1
Get:2 http://apt.freshrpms.net freshrpms/7.2/freshrpms nessus-server 1:1.1.12-fr1
Get:3 http://apt.freshrpms.net redhat/i386/7.2/os nmap 2.54BETA22-3
Fetched 1239kB in 54s (22.8kB/s)
Executing RPM (-U)...
Preparing... ###########################################
1:nessus-common ########################################### [ 33%]
2:nmap ########################################### [ 66%]
3:nessus-server ###########################################
#


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

# 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?
Get:1 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os at 3.1.8-23
Get:2 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os libxml2 2.4.10-0.7x.2
Get:3 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os libxml2-devel 2.4.10-0.7x.2
Get:4 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os openldap 2.0.21-1
Get:5 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os openldap-clients 2.0.21-1
Get:6 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os openldap-devel 2.0.21-1
Get:7 http://apt-rpm.tuxfamily.org redhat-updates-7.2/redhat/os rsync 2.4.6-8
Fetched 2132kB in 3m8s (11.3kB/s)
Executing RPM (-U)...
Preparing... ###########################################
1:libxml2 ########################################### [ 14%]
2:rsync ########################################### [ 28%]
3:openldap ########################################### [ 42%]
4:openldap-clients ########################################### [ 57%]
5:openldap-devel ########################################### [ 71%]
6:at ########################################### [ 85%]
7:libxml2-devel ###########################################
#


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

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

Fedora core 2 :
http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/2/apt/apt-0.5.15cnc6-1.1.fc2.fr.i386.rpm

Fedora core 1 :
http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/1/apt/apt-0.5.15cnc6-0.1.fc1.fr.i386.rpm

http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm

其他版本下载你可以在 http://apt.freshrpms.net/ 首页找到。

下载后使用rpm命令安装:

# rpm -ihv apt-0.5.5cnc6-fr1.i386.rpm


freshrpms.net同时提供了一个图形界面的apt-rpm接口Synaptic,使用图形界面的apt更加方便,安装了apt后,可以直接利用apt安装Synaptic:

# apt-get update
# apt-get install synaptic

在几行提示之后Synaptic就安装好了,进入Xwindow,Synaptic会出现在“系统设置”菜单里面。

三、使用apt

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

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

# apt-get update

(2)检查本地软件依赖关系合法性,由于rpm系统的问题,很多系统会存在一些依赖问题,用下面命令检查依赖关系,同时apt-get会提供一些修复方案,只有本机没有依赖关系问题了才能良好地使用apt-rpm。一个新安装的干净系统不会有依赖关系问题。

# apt-get check

(3)安装或升级一个新软件

# apt-get install package-name

package-name是rpm包的名字的前面部分,不包含版本号,如果选择不同的处理器类型,可以在后面添加@i686等标识。

(4)升级所有系统软件

# apt-get upgrade

(5)全面升级,比upgrade更加智能化的升级,同时解决升级时的一些依赖关系

# apt-get dist-upgrade

(6)卸载软件,同时卸载依赖软件

# apt-get remove package-name

(7)清除本地下载的rpm包,rpm包下载后保存在/var/cache/apt/archieves下面,本命令清除已下载安装过的rpm文件

# apt-get clean

以上所有命令都可以通过图形界面的前端软件Synaptic完成,图形化的软件使用起来更加直观,理解了前面几个主要命令,就可以毫无困难地使用Synaptic了,所以本文不再赘述Synaptic的使用方法了。

四 定制apt-rpm

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

这一行参数的格式为:

rpm uri distribution [...]

其中,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 ftp://apt.unl.edu/apt/ 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光盘并建立列表

# apt-cdrom add

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

# apt-cdrom -m -d mount-point add

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

# apt-cdrom -m -d path add

五 实例: 安装mplayer

# 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?
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms aalib 1.4rc5-fr1
Get:2 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms libdv 0.99-fr1
Get:3 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms libdvdread-devel 0.9.4-fr2
Get:4 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms libdvdread 0.9.4-fr2
Get:5 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms lirc 0.6.5-fr3
Get:6 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms xvidcore 0.9.0-fr3
Get:7 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms mplayer 0.90-fr0.5rc4
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... ###########################################
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 ###########################################

hew 发表于 2004-7-2 19:34:51

更多fedora 2 apt 应用

这是 HOUSCOUS 的一个帖子,他在公社和linuxsky 都发了一边,但在公社找不到,所以给个linusky的链接。
http://www.linuxsky.net/topic_612.html

该贴内容简介:
添加升级资料库信息.
安装MP3插件
安装Flash插件
安装DVD播放器
安装MPlayer(或Xine)
安装RealPlayer 9
安装Java J2RE和Mozilla插件
安装NTFS驱动

linuxcong 发表于 2004-7-25 13:44:49

谢谢楼主!
真的很好用!还想请教:
我的RH9没有安装图形界面,请问如何用APT安装gnome?用什么命令?
再次谢谢!

duotaiya 发表于 2004-7-25 13:58:07

:shock:
默认的似乎没有新的gnome和内核,
:mrgreen: jipinren已经试过upgrade整个系统了,就gnome和内核没有升到,最后还是用redhat的在线更新升的,不过还是老了点~

cnhnln 发表于 2004-7-25 19:34:29

只可惜rh没有象debian那样的官方apt资源仓库。需要自己再寻找。
找到的站点少的话,可能apt不到你想要的,添加的多得话又容易产生冲突。这就是我现在的问题。就拿mplayer说吧,几乎每个仓库都有,版本不一,update后只有最新的,而一些相关的包的依赖关系并不是这个站点的包或者不是这个版本的,而是老一些的,例如xmmsmplayer。
所以我现在用rh,宁愿自己到这些站点下载

linuxcong 发表于 2004-7-26 12:23:33

失望!
谢谢!

niceLinux 发表于 2004-7-30 21:52:03

晕啊,我要到何年何月才能升级完
“226 packages upgraded, 18 newly installed, 1 replaced, 0 removed and 0 not upgraded.
Need to get 458MB/461MB of archives.
After unpacking 35.2MB of additional disk space will be used.”

yangye 发表于 2004-9-27 19:53:00

出错了
帮帮我把
# apt-get install synaptic
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
libpng-devel: Depends: libpng (= 2:1.2.2) but 2:1.2.7-1 is to be installed
qt-MySQL: Depends: libmysqlclient.so.10
qt-ODBC: Depends: libodbc.so.1
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

shadyslim 发表于 2004-9-28 10:10:38

apt-get -f install 后就可以用了。

honhaizh 发表于 2004-10-19 01:23:23

收藏

zwbfj 发表于 2006-4-17 19:57:41

真是开了眼见了,redhat下都用apt,那还好了!

waxl258 发表于 2006-10-24 11:41:39

太厉害了.简直就是就是我崇拜的偶像.哈哈.


一切问题解决拉.哈哈.


一个字:爽的要死!!!

waxl258 发表于 2006-10-24 11:53:54

安装成功 ,可是出现了在个问题.情看 !!!


下面是安装成功的嗲代码 !!!


# apt-get install mplayer
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
aalib alsa-lib faad2 lame libdv libdvdcss libdvdread libfame libmad
libpostproc lirc lzo mplayer-fonts
The following NEW packages will be installed:
aalib alsa-lib faad2 lame libdv libdvdcss libdvdread libfame libmad
libpostproc lirc lzo mplayer mplayer-fonts
0 packages upgraded, 14 newly installed, 0 removed and 116 not upgraded.
Need to get 9095kB of archives.
After unpacking 26.4MB of additional disk space will be used.
Do you want to continue? y
Get:1 http://ayo.freshrpms.net redhat/9/i386/freshrpms aalib 1.4rc5-3.fr
Get:2 http://ayo.freshrpms.net redhat/9/i386/freshrpms alsa-lib 0.9.8-1.fr [333k
B]
Get:3 http://ayo.freshrpms.net redhat/9/i386/freshrpms faad2 2.0-0.1.rc1.fr [417
kB]
Get:4 http://ayo.freshrpms.net redhat/9/i386/freshrpms lame 3.93.1-fr2
Get:5 http://ayo.freshrpms.net redhat/9/i386/freshrpms libdv 0.99-fr2
Get:6 http://ayo.freshrpms.net redhat/9/i386/freshrpms libdvdcss 1.2.8-1.fr [36.
2kB]
Get:7 http://ayo.freshrpms.net redhat/9/i386/freshrpms libdvdread 0.9.4-fr3 [110
kB]
Get:8 http://ayo.freshrpms.net redhat/9/i386/freshrpms libfame 0.9.0-fr2
Get:9 http://ayo.freshrpms.net redhat/9/i386/freshrpms libpostproc 1.0-0.2.pre2.
fr
Get:10 http://ayo.freshrpms.net redhat/9/i386/freshrpms lirc 0.6.6-fr1
Get:11 http://ayo.freshrpms.net redhat/9/i386/freshrpms lzo 1.08-fr2
Get:12 http://ayo.freshrpms.net redhat/9/i386/freshrpms libmad 0.15.0b-2.fr [82.
9kB]
Get:13 http://ayo.freshrpms.net redhat/9/i386/freshrpms mplayer-fonts 1.1-1.fr [                           1035kB]
Get:14 http://ayo.freshrpms.net redhat/9/i386/freshrpms mplayer 1.0-0.2.pre2.fr                              
Fetched 9095kB in 8m55s (17.0kB/s)
Executing RPM (-Uvh)...
warning: /var/cache/apt/archives/aalib_1.4rc5-3.fr_i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
Preparing...                ###########################################
   1:aalib                  ###########################################
   2:alsa-lib               ########################################### [ 14%]
   3:faad2                  ########################################### [ 21%]
   4:lame                   ########################################### [ 29%]
   5:libdv                  ########################################### [ 36%]
   6:libdvdcss            ########################################### [ 43%]
   7:libdvdread             ########################################### [ 50%]
   8:libfame                ########################################### [ 57%]
   9:libpostproc            ########################################### [ 64%]
10:lirc                   ########################################### [ 71%]
11:lzo                  ########################################### [ 79%]
12:libmad               ########################################### [ 86%]
13:mplayer-fonts          ########################################### [ 93%]
14:mplayer                ###########################################

waxl258 发表于 2006-10-24 11:55:03

下面是出现问题的代码...情给点提示.谢谢!!!



# mplayer
MPlayer 1.0pre2-3.2.2 (C) 2000-2003 MPlayer Team

CPU: Intel Pentium 4/Xeon/Celeron Northwood 3066 MHz (Family: 8, Stepping: 9)
Detected cache-line size is 64 bytes
CPUflags:MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Reading config file /etc/mplayer/mplayer.conf: 没有那个文件或目录
Creating config file: /root/.mplayer/config
Reading config file /root/.mplayer/config
Reading /root/.mplayer/codecs.conf: Can't open '/root/.mplayer/codecs.conf': 没有那个文件或目录
Reading /etc/mplayer/codecs.conf: Can't open '/etc/mplayer/codecs.conf': 没有那个文件或目录
Using built-in default codecs.conf
Usage:   mplayer filename

Basic options: (complete list in the man page)
-vo <drv[]>select video output driver & device ('-vo help' for a list)
-ao <drv[]>select audio output driver & device ('-ao help' for a list)
vcd://<trackno>   play VCD (Video CD) track from device instead of plain file
dvd://<titleno>   play DVD title from device instead of plain file
-alang/-slang    select DVD audio/subtitle language (by 2-char country code)
-ss <timepos>    seek to given (seconds or hh:mm:ss) position
-nosound         do not play sound
-fs            fullscreen playback (or -vm, -zoom, details in the man page)
-x <x> -y <y>    set display resolution (for use with -vm or -zoom)
-sub <file>      specify subtitle file to use (also see -subfps, -subdelay)
-playlist <file> specify playlist file
-vid x -aid y    select video (x) and audio (y) stream to play
-fps x -srate ychange video (x fps) and audio (y Hz) rate
-pp <quality>    enable postprocessing filter (details in the man page)
-framedrop       enable frame dropping (for slow machines)

Basic keys: (complete list in the man page, also check input.conf)
<-or->       seek backward/forward 10 seconds
up or down       seek backward/forward1 minute
pgup or pgdown   seek backward/forward 10 minutes
< or >         step backward/forward in playlist
p or SPACE       pause movie (press any key to continue)
q or ESC         stop playing and quit program
+ or -         adjust audio delay by +/- 0.1 second
o                cycle OSD mode:none / seekbar / seekbar + timer
* or /         increase or decrease PCM volume
z or x         adjust subtitle delay by +/- 0.1 second
r or t         adjust subtitle position up/down, also see -vop expand

* * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * *

# cd ..
# mplayer 算死草b.RM
MPlayer 1.0pre2-3.2.2 (C) 2000-2003 MPlayer Team

CPU: Intel Pentium 4/Xeon/Celeron Northwood 2801 MHz (Family: 8, Stepping: 9)
Detected cache-line size is 64 bytes
CPUflags:MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Reading config file /etc/mplayer/mplayer.conf: 没有那个文件或目录
Reading config file /root/.mplayer/config
Reading /root/.mplayer/codecs.conf: Can't open '/root/.mplayer/codecs.conf': 没
有那个文件或目录
Reading /etc/mplayer/codecs.conf: Can't open '/etc/mplayer/codecs.conf': 没有那
个文件或目录
Using built-in default codecs.conf
font: can't open file: /root/.mplayer/font/font.desc
Font /usr/share/mplayer/font/font.desc loaded successfully! (206 chars)
Using Linux hardware RTC timing (1024Hz).
Can't open input config file /root/.mplayer/input.conf: 没有那个文件或目录
Can't open input config file /etc/mplayer/input.conf: 没有那个文件或目录
Falling back on default (hardcoded) input config
Opening joystick device /dev/input/js0
Can't open joystick device /dev/input/js0 : 没有那个设备
Can't init input joystick
Setting up LIRC support...
mplayer: could not connect to socket
mplayer: 没有那个文件或目录
Failed to open LIRC support.
You will not be able to use your remote control.

Playing 算死草b.RM
REAL file format detected.
skip_str: 12 bytes skipped
skip_str: 20 bytes skipped
======= WAVE Format =======
Format Tag: 28515 (0x6F63)
Channels: 1
Samplerate: 44100
avg byte/sec: 44137
Block align: 640
bits/sample: 16
cbSize: 18
Unknown extra header dump: [0
]
===========================
skip_str: 12 bytes skipped
skip_str: 20 bytes skipped
skip_str: 0 bytes skipped
skip_str: 16 bytes skipped
Not audio/video stream or unsupported!
VIDEO:RV30 352x288(aspect 0.00)25.00 fps
Clip info:
name: Avseq01
copyright:
页: [1]
查看完整版本: 使用apt-rpm 简化你的rh,fc rpm包管理