linux软件管理之rpm管理rpm包

使用RPM工具管理RPM包

====================================================================================
需要手动解决包的依赖关系

==安装
[root@localhost ~]# rpm -ivh dos2unix-3.1-37.el6.x86_64.rpm 套件名
[root@localhost ~]# rpm -ivh ntfs-3g-2010.5.22-1.el6.x86_64.rpm 套件名
[root@localhost ~]# rpm -Uvh ntfs-3g-2011.4.12-5.el6.x86_64.rpm 套件名
[root@localhost ~]# rpm -ivh ftp://rpmfind.net/linux/atrpms/sl6-x86_64/atrpms/stable/puppet-3.2.4-3.el6.noarch.rpm
[root@localhost ~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
额外选项:
--nomd5 //不检验软件包的签名
--force //强制安装软件包
--nodeps //忽略依赖关系

RPM包安装信息存储到本地RPM数据库中。。。

==查询
(从本地的rpm数据库)
[root@localhost ~]# rpm -q ntfs-3g //查询指定包是否安装
[root@localhost ~]# rpm -qa |grep ntfs
[root@localhost ~]# rpm -ql ntfs-3g //查询ntfs-3g安装的文件
[root@localhost ~]# rpm -qf /usr/bin/ntfs-3g //查询该文件属于哪个rpm包
[root@localhost ~]# rpm -qi ntfs-3g //查询包的information
[root@localhost ~]# rpm -qc ntfs-3g //查询某个包安装的配置文件
[root@localhost ~]# rpm -qd vsftpd //查安装的帮助文档

(从rpm套件中查询)
扩展知识: 针对没有安装的包,直接从套件中查询
[root@localhost ~]# rpm -e ntfs-3g
[root@localhost ~]# rpm -qip ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@localhost ~]# rpm -qlp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@localhost ~]# rpm -qcp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@localhost ~]# rpm -qdp ntfs-3g-2011.4.12-5.el6.x86_64.rpm

==卸载
[root@localhost ~]# rpm -e ntfs-3g
[root@localhost ~]# rpm -e ntfs-3g --nodeps
额外选项:
--nodeps //忽略依赖关系

案例1:安装系统光盘上的rpm包
1. 挂载光盘
[root@localhost ~]# mount /dev/cdrom /media
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sr0 3632776 3632776 0 100% /media

案例2: 使用iso镜像文件
[root@dc ~]# mount -o loop /home/centos-6.6-x86_64-dvd.iso /media

RHEL5 光盘结构:
Server 主仓库,基本仓库
VT 虚拟化相关软件包
Cluster 集群相关软件包
ClusterStorage 集群存储相关的软件gfs

RHEL6 光盘结构:
Server 主仓库,基本仓库
HighAvailability HA集群仓库
LoadBalancer LB集群仓库
ResilientStorage 存储软件仓库
ScalableFileSystem 其它文件系统仓库

Centos6光盘结构:
[root@db ~]# ls /media/
CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
EFI Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6

[root@db ~]# cd /media/Packages/
[root@db Packages]# ll vsftpd-2.2.2-12.el6_5.1.x86_64.rpm tigervnc-1.1.0-16.el6.x86_64.rpm
-r--r--r--. 2 root root 189888 Oct 18 2014 tigervnc-1.1.0-16.el6.x86_64.rpm
-r--r--r--. 2 root root 154824 Aug 5 2014 vsftpd-2.2.2-12.el6_5.1.x86_64.rpm

案例3:安装如下软件包
vsftpd
samba
nfs-utils
httpd
dhcp
postfix
mysql-server
php
lftp
dos2unix
unix2dos
tigervnc

[root@yangs Packages]# pwd
/media/cd/Packages
[root@yangs Packages]# rpm -ivh samba-3.0.33-3.37.el5.i386.rpm samba-common-3.0.33-3.37.el5.i386.rpm

RPM包签名检查机制:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //导入红帽公钥
# rpm --import /etc/pki/rpm-gpg/*
# rpm -ivh tftp-server-0.49-2.i386.rpm
Preparing... ######################################### [100%]
1:tftp-server ######################################### [100%]
====================================================================================

rpm工具管理软件包总结:

1. 很难解决包依赖关系
2. 如果某个文件没有,很难知道它由哪个rpm包提供,例如 semanage 或 tree 命令是由哪个包提供?

上一篇:poj 3525 半平面交求多边形内切圆最大半径【半平面交】+【二分】


下一篇:BZOJ3110[Zjoi2013]K大数查询(树状数组+整体二分)