2014年2月17日星期一

RPM 软件管理程序命令详解

RPM 默认安装的路径


/etc 一些设置文件放置的目录,例如 /etc/crontab
/usr/bin 一些可执行文件
/usr/lib 一些程序使用的动态函数库
/usr/share/doc 一些基本的软件使用手册与帮助文档
/usr/share/man 一些 man page 文件


RPM 安装

如果要安装一个文件名为 rp-pppoe-3.5-32.1.i386.rpm 的文件,只需这样:



[root@www ~]# rpm -i rp-pppoe-3.5-32.1.i386.rpm

说明:

rp-pppoe   -        3.5     -      32             .i386         .rpm
软件名称      软件的版本信息   发布的次数     适合的硬件平台   扩展名



显示安装进度

[root@www ~]# rpm -ivh package_name



选项与参数:

-i :install 的意思

-v :查看更详细的安装信息画面

-h :以安装信息栏显示安装进度



范例一:找出你的 Linux 是否有安装 logrotate 这个软件
[root@www ~]# rpm -q logrotate
logrotate-3.7.4-8
[root@www ~]# rpm -q logrotating
package logrotating is not installed
# 注意到,系统会去找是否有安装后面接的软件名称。注意,
# 不必要加上版本。至于显示的结果,一看就知道有没有安装。

范例二:列出上题当中,属于该软件所提供的所有目录与文件:
[root@www ~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
....(以下省略)....
# 可以看出该软件到底提供了多少的档桉与目录,也可以追踪软件的资料。

范例三:列出 logrotate 这个软件的相关说明资料:
[root@www ~]# rpm -qi logrotate
Name        : logrotate             Relocations: (not relocatable)
Version     : 3.7.4                      Vendor: CentOS
Release     : 8                      Build Date: Sun 02 Dec 2007 08:38:06 AM CST
Install Date: Sat 09 May 2009 11:59:05 PM CST    Build Host: builder6
Group       : System Environment/Base  Source RPM: logrotate-3.7.4-8.src.rpm
Size        : 53618                     License: GPL
Signature   : DSA/SHA1, Sun 02 Dec 2007 09:10:01 AM CST, Key ID a8a447dce8562897
Summary     : Rotates, compresses, removes and mails system log files.
Description :
The logrotate utility is designed to simplify the administration of
log files on a system which generates a lot of log files.  Logrotate
allows for the automatic rotation compression, removal and mailing of
log files.  Logrotate can be set to handle a log file daily, weekly,
monthly or when the log file gets to a certain size.  Normally,
logrotate runs as a daily cron job.

Install the logrotate package if you need a utility to deal with the
log files on your system.
# 列出该软件的 information (资讯),里面的信息可多着呢,包括了软件名称、
# 版本、开发商、SRPM文件名称、打包次数、简单说明信息讯、软件打包者、
# 安装日期等!如果想要详细的知道该软件的资料,用这个参数来了解一下

范例四:分别仅找出 logrotate 的设定文件与说明文件
[root@www ~]# rpm -qc logrotate
[root@www ~]# rpm -qd logrotate

范例五:若要成功安装 logrotate ,他还需要什么文件的帮忙?
[root@www ~]# rpm -qR logrotate
/bin/sh
config(logrotate) = 3.7.4-8
libc.so.6
....(以下省略)....


范例六:由上面的范例五,找出 /bin/sh 是那个软件提供的?
[root@www ~]# rpm -qf /bin/sh
bash-3.2-21.el5
# 这个参数后面接的可是『文件』!不像前面都是接软件!
# 这个功能在查询系统的某个文件属于哪一个软件所有的。


范例七:假设我有下载一个 RPM 文件,想要知道该文件的需求文件,该如何办?
[root@www ~]# rpm -qpR filename.i386.rpm
# 加上 -qpR ,找出该文件需求的数据!

RPM 卸载与重建数据库


# 1. 找出与 pam 有关的软件名称,并尝试删除 pam 这个软件:
[root@www ~]# rpm -qa | grep pam
pam-devel-0.99.6.2-3.27.el5
pam_passwdqc-1.0.2-1.2.2
pam_pkcs11-0.5.3-23
pam_smb-1.1.7-7.2.1
pam-0.99.6.2-3.27.el5
pam_ccreds-3-5
pam_krb5-2.2.14-1
[root@www ~]# rpm -e pam
error: Failed dependencies:  <== 发生软件依赖导致无法删除某些软件
        libpam.so.0 is needed by (installed) coreutils-5.97-14.el5.i386
        libpam.so.0 is needed by (installed) libuser-0.54.7-2.el5.5.i386
....(以下省略)....

# 2. 若仅删除 pam-devel 这个之前范例安装上的软件呢?
[root@www ~]# rpm -e pam-devel  <==不会出现任何信息!
[root@www ~]# rpm -q pam-devel
package pam-devel is not installed


由于 RPM 文件常常会安装/删除/升级等,某些操作或许可能会导致 RPM 数据库 /var/lib/rpm/ 内的文件损坏。

[root@www ~]# rpm --rebuilddb   <==重建数据库


上一篇:Linux 的软件管理器
下一篇:Linux 下的软件管家 YUM

没有评论:

发表评论