一、RMP工具管理RPM包
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
语法:rpm(选项)(参数)
选项:
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。
参数:指定要操纵的rpm软件包。
========查询实例===============
[root@localhost ~]# rpm -aq //从本地的rpm数据库,查询所有rpm包
gvfs-gphoto2-1.4.3-18.el6.x86_64
redhat-logos-60.0.14-12.el6.centos.noarch
pinentry-gtk-0.7.6-6.el6.x86_64
dejavu-fonts-common-2.30-2.el6.noarch
gcalctool-5.28.2-3.el6.x86_64
ConsoleKit-libs-0.4.1-3.el6.x86_64
..................................................
[root@localhost ~]# rpm -q ntfs-3g //查询包是否安装
package ntfs-3g is not installed
[root@localhost ~]# rpm -qa |grep tree //查找tree套件名
tree-1.5.3-3.el6.x86_64
[root@localhost ~]# rpm -qi tree //查询包的详细信息
Name : tree Relocations: (not relocatable)
Version : 1.5.3 Vendor: CentOS
Release : 3.el6 Build Date: Wed 14 Jan 2015 04:21:02 AM PST
Install Date: Sat 07 Jan 2017 03:07:31 PM PST Build Host: c6b9.bsys.dev.centos.org
Group : Applications/File Source RPM: tree-1.5.3-3.el6.src.rpm
Size : 66687 License: GPLv2+
Signature : RSA/SHA1, Wed 14 Jan 2015 06:12:21 AM PST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://mama.indstate.edu/users/ice/tree/
Summary : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format. Tree is basically a UNIX port of the DOS tree
utility.
===========卸载==============
[root@localhost ~]# rpm -e tree --nodeps //卸载tree --nodeps忽略依赖关系
二、使用光盘rpm包
1.挂载光盘
[root@localhost ~]# df -TH //显示磁盘分区上的可使用的磁盘空间 -T 查看文件系统类型
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 19G 3.6G 15G 21% /
tmpfs tmpfs 515M 78k 515M 1% /dev/shm
/dev/sda1 ext4 297M 30M 252M 11% /boot
/dev/sr0 iso9660 4.7G 4.7G 0 100% /mnt
[root@localhost ~]# umount /mnt //卸载sr0光盘
[root@localhost ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 19G 3.6G 15G 21% /
tmpfs tmpfs 515M 78k 515M 1% /dev/shm
/dev/sda1 ext4 297M 30M 252M 11% /boot
[root@localhost ~]# mount /dev/sr0 /mnt //挂载光盘
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 19G 3.6G 15G 21% /
tmpfs tmpfs 515M 78k 515M 1% /dev/shm
/dev/sda1 ext4 297M 30M 252M 11% /boot
/dev/sr0 iso9660 4.7G 4.7G 0 100% /mnt
[root@localhost ~]# ll /mnt/Packages //所有的RPM包都在这个目录下
2.安装rpm包
[root@localhost Packages]# rpm -ivh tree-1.5.3-2.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:tree ########################################### [100%]
3.rpm工具总结
1. 很难解决包依赖关系
2. 如果某个文件没有,很难知道它由哪个rpm包提供,例如 semanage 或 tree 命令是由哪个包提供?