一.RPM包管理
  1.RPM包的名称格式
cvs-1.11.2-10i386.rpm
"cvs"是软件的名称;"1.11.2-10"是软件的版本号,其中包括主版本号和次版本号;"i386"是软件所运行的硬件平台;最后的"rpm"做为文件的扩展名,当然代表文件类型为RPM包。
  2.查询RPM包
  》查询系统中安装的所有RPM包
格式:rpm -qa
//rpm -qa命令将在屏幕上显示系统中安装的所有的软件包的列表
//列表中的内容很多,通常配合more命令进行分页显示
#rpm -qa|more
hwdata-0.75-1
setup-2.5.25-1
......
//rpm -qa命令通常可以和grep命令配合使用,查找所有包中特定字符串的软件包
//此种方法对于模糊查找某类软件包特别有用
#rpm -qa|grep X
XFree86-libs-4.3.0-2
XFree86-Mesa-libGL-4.3.0-2
XFree86-libs-data-4.3.0-2
//上面的命令查询出所有包含“X”的软件包
  》查询软件包是否安装
格式:rpm -q 软件包名称
#rpm -q xinetd
xinetd-2.3.10-6
//如软件包已安装,显示软件包的完整名称(包括相应的版本号)
#rpm -qfoo
package foo is not installed
//如果软件包末安装,显示相应的提示信息
//可以在同一个命令中查找多个软件包
#rpm -q xinetd file bash
xinetd-2.3.10-6
file-.3.39-9
bash-2.05b-20
  》查询软件包信息
格式:rpm -qi 软件包名称
#rpm -qi file
Name :file   Relocations:(not relocateable)
Version :3.39   Vendor:Red Hat,Inc.
Release :9   Bulid Data:Thu 27 Feb 2003 03:24:16 PM EST
Install Date:Tue 08 Apr 2003 01:28:00 AM EDT Bulid Host:stripples.devel.redhat.com
Group :Applications/File Source RPM:file-3.39-9.src.rpm
Size :834340   License:distributable
Signature :DSA/SHA1,Thu 27 Feb 2003 03:35:55 PM EST,Key ID 219180cddb42a60e
Packager :Red Hat,Inc.< http://bugzilla.redhat.com/bugzilla>
Summary  :A utility for determining file types.
Description:
The file command is used to identify a file according to tye type of
data it contains.File cna identity many different file types,
including ELF binaried,system libraries,RPM packages,and different
graphics formats.
//软件包的描述信息包括许多内容,如功能描述、建立时间和版本号等
  》查询软件包中的文件
格式:rpm -ql 软件包名称
rpm -ql 命令用于查询系统中已安装软件包的里所包含的文件列表
#rpm -ql file
/usr/bin/file
/usr/shar/magic
/usr/share/magic.mgc
/usr/shar/magic.mime
/usr/share/magic/mime.mgc
/usr/share/man/man1/file/1.gz
/usr/share/man/man5/magic.5.gz
/usr/share/misc/magic
//文件列表以全路经的形式显示软件包中所有文件
//由于linux系统软件包中的文件是安装在不同的目录中的,
//所以了解软件包中各文件所在路经是非常重要的。
  》查询系统中文件所属的软件包
格式:pam -qf 文件全路经名
#rpm -qf /etc/passwd
setup-2.5.25-1
#rpm -qf /root/install.log
file/root/install.log is not owned by any packgae
//不是系统中所有的文件都属于某一个软件包的,
//很多文件是用户或应用程序创建的而不属于任何软件包
  》查询PRM包文件中的信息
格式:rpm -qp RPM
rpm -qp 命令用于查询PRM包文件中的信息,通常用于在未安装软件包之前了解软件包中的信息。
//查询RPM包中的软件名称
#rpm -qp cvs-1.11.2-10.i386.rpm
//查询RPM包中软件的描述信息
#rpm -qpi cvs-1.11.2-10.i386.rpm
//查询RPM包中软件的文件列表
#rpm -qpl cvs-1.11.2-10.i386.rpm
//使用rpm -qp命令时同样可以配合“-i”和“-l”选项查询软件包的描述信息和文件列表
  3.安装RPM包
格式:rpm -i RPM包全路经文件名
#rpm -q cvs
package cvs is not installed
#rpm -i cvs-1.11.2-10.i386.rpm
#rpm -q cvs
cvs-1.11.2-10
格式:rpm -ivh RPM包全路经文件名
#rpm -ivh cvs-1.11.2-10.i386.rpm
Preparing...  #############################################[100%]
  1:cvs   #############################################[100%]
  4.删除RPM包
格式:rpm -e RPM包名称
#rpm -q cvs
cvs-1.11.2-10
#rpm -e cvs
#rpm -q cvs
package cvs in not installed
  5.升级RPM包
格式:rpm -U RPM 软件包全路经名
如当前系统中未安装指定RPM包中的软件,则直接进行安装
#rpm -U cvs-1.11.2-10-i386.rpm
  6.rpm包的公钥管理
  》输入RPM包的公钥
格式:rpm --import 公钥文件全路经名
rpm --import命令用于输入相应的RPM包的公钥
//测试安装RedHat linux 9中的RPM包
#rpm --test -i cvs-1.11.2-10.i386.rpm
warning:cvs-1.11.2-10.i386.rpm:V3 DSA signature:NOKEY,key ID DB42A60E
//rpm命令安装信息警告该软件包没有密钥签名
//查看redhat linux 9的安装光盘中所带的RPM包公钥文件
//该文件位于安装光盘的根目录,文件名为“RPM-GPG-KEY”
#head /mnt/cdrom/RPM-GPG-KEY
The following public key can be used to verify RPM packages built and
signed by Red Hat,Inc.using'rpm -K'using the GNU GPG package.
Questions about this key should be sent to security @redhat.com.
---BEGIN PGP PUBLIC KEY BLOCK----
Version:GnuPG v1.0.0(GNU/Linux)
Comment:For info see http://www.gnupg.org
mQGiBDfgVDgRBADBKr3B16PO8BQ0H8JoD6p9U7Yy17pjtZqioviPwXP+DCWd4u8
HQzcxAZ57m8ssA1LK1Fx93coJHDzM130+p5BG9mYSWShLabR3N1KXdXQYYcowTOM
//输入redhatlinux9安装光盘中的公钥文件
#rpm --import /mnt/cdrom/RPM-GPG-KEY
#rpm --test -i/mnt/cdrom/RedHat/RPMS/cvs-1.11.2-10.i386.rpm
//在次测试安装,没有警告出现
  》查询RPM公钥
//查询系统中安装的所有RPM公钥
//RPM公钥名称是以gpg-pubkey开始的
#rpm -qa gpg-pubkey*
gpg-pubkey-db42a60e-37ea5438
//查询指定RPM公钥详细信息
#rpm -qi gpg-pubkey-db42a60e-37ea5438
Name :gpg-pubkey  Relocations:(not relocateable)
Version :db42a60e  Vendor:(none)
Release :37ea5438  Build Date:Sun 06 Jul 2003 02:31:44 PM EDT
InstallDate:Sun 06 Jul 2003 02:31:44 PM EDT Build Host:localhost
Group :Public Keys  Source RPM:(none)
Size :0  License:pubkey
Signaature :(none)
Summary :gpg(Red Hat,Inc< security@redhat.com>)
Description:
----BEGIN PGP PUBLIC KEY BLOCK---
Version:rpm-4.2(beecrypt-2.2.0)
mQGiBDfgVDgRBADBKr3B16PO8BQ0H8sJoD6p9U7Yy17pjtZqioviPwXP+DCWd4u8HQz
cxAZ5
7m8ssA1LK1Fx93coJhDzM130+p5BG9mYSWShLabR3N1KXdXQYYcowTOMGxdwYRG
r1Spw8Qyd
......
  》校验RPM包的签名
格式:rpm -K RPM包文件全路经名
rpm -K 命令对指定的RPM包文件做多种形式的校验(包括gpg校验),以验证其有效性。
#rpm -K cvs-1.11.2-10.i386.rpm
cvs-1.11.2-10.i386.rpm:(sha1)dsa sha1 md5 gpg OK
//RPM包的签名校验成功
二.TAR包管理
tar命令本身只进行打包而不进行压缩,通常的做法是使用tar命令配合其他的压缩命令对TAR包进行压缩或解压,tar命令也提供了相应的选项直接调用其它命令的压缩解压功能。
  1.建立TAR包
格式:tar cvf TAR包文件名 所备份的文件或目录名
tar cvf命令用于把指定目录或文件打包到指定的文件中。“C”指定建立TAR包,“v”设置命令挂靠时有更多的提示信息,“f”指定TAR包的文件名
#tar cvf tmp.tar /tmp/
tar:Remnoving leading'/'form member nameds
tmp/
tmp/abc
tmp/def
tmp/123
//使用file命令查看tmp.tar文件的类型
#file tmp.tar
tmp.tar:GNU tar archive
 
  2.建立压缩的TAR包
格式:tar zcvf 压缩TAR包文件名 所备份的文件或目录名
tar zcvf 命令把指定的目录或文件打包后进行压缩并保存到指定文件,"z"代表使用gzip程序进行压缩
#tar zcvf tmp.tar.gz /tmp/
tar:Removing leading'/'from member names
tmp/
tmp/abc
tmp/def
tmp/123
#file tmp.tar.gz
tmp.tar.gz:gzip compressed data,from Unix
//file只能理解tmp.tar.gz是gzip的压缩文件,而不能看到压缩文件中的文件
  3.查询TAR包中内容
格式:tar tf TAR包文件名
tar tf命令显示指定TAR包中的文件目录列表,该命令用于在释放TAR包之前了解其中所包含的文件
#tar tf tmp.tar
tmp/
tmp/abc
tmp/def
tmp/123
  4.查询压缩TAR包中内容
格式:tar ztf 压缩TAR包文件名
#tar ztf tmp.tar.gz
tmp/
tmp/abc
tmp/def
tmp/123
 
  5.释放TAR包
格式:tar xvf TAR包文件名
x表示释放文件
#tar xvf tmp.tar
tmp/
tmp/abc
tmp/def
tmp/123
#ls tmp
123 abc def
//tmp.tar中的文件释放到了当前目录的tmp目录中
 
  6.释放压缩TAR包
格式:tar zxvf 压缩TAR包文件名
z表示压缩文件
#tar zxvf tmp.tar.gz
tmp/
tmp/abc
tmp/def
tmp/123
三.使用Red Hat Linux 9中的包管理程序
启动包管理程序
  》进入X-Windows图形界面,单击“主菜单”--“系统设置”--“添加/删除应用程序”,启动包管理程序
  》#redhat-config-packages