我们在linux服务器上安装软件时,安装介质常见为两类:一类为二进制软件包;另一类则为”源码包“。源码包:优点是我们可以看到源代码;安装后效率更高,性能更稳定;卸载时只需删除安装目录即可,更方便。缺点:安装时间长,步骤多,安装时容易报错。二进制包即经过编译的软件包,编译成计算机可以识别的二进制代码,因此我们看不到源代码。在我们实验环境中红帽系列(centos)中的二进制软件包为”rpm“包。按照二进制包的优点是包管理系统简单,通过 几条命令就可以实现软件包的安装、升级、卸载、查询等。缺点是不能灵活的选择功能;软件安装过程中需要解决软件安装的”依赖性“。

  针对以上这两种安装包相应的安装及管理方式也是不同的。其中”rpm格式二进制安装包“有两种方式安装,一种是”rpm命令管理“,另一种为”yum在线管理“。下面分别介绍他们的安装管理方式。

rpm包”rpm命令管理“

(1)安装命令语法  rpm -ivh ”二进制软件包全名“

  -i (install) 安装

  -v(verbose) 显示按照的详细信息

  -h(hash) 显示安装进度

  --nodeps 不检测依赖性,一般不要使用     



1 [root@zabbix packages]# rpm -ivh mysql-server-5.1.73-7.el6.x86_64.rpm



(2)升级命令语法  rpm -Uvh ”二进制软件包全名“

  -U(update) 升级 



[root@zabbix packages]# rpm -Uvh mysql-server-5.1.73-7.el6.x86_64.rpm



(3)卸载命令语法  rpm -e  ”包名“

  



[root@zabbix packages]# rpm -e mysql-server



(4)查询是否安装软件命令

  语法 1:rpm -q  包名  

      语法2:rpm -qa | grep "关键字"

  -q(query)查询

  -a (all)所有



[root@zabbix packages]# rpm -q mysql-server
 mysql-server-5.1.73-7.el6.x86_64
[root@zabbix packages]# rpm -qa | grep  mysql-server
 mysql-server-5.1.73-7.el6.x86_64



(5)查询已安装软件包的信息

  语法1: rpm -qi "包名"  (用于已安装的软件包)

  语法2:rpm -qip "二进制软件包名称"  (用于未安装之前)

(用于未安装之前)

  -l (list) 列表

  -i (information) 信息



[root@zabbix packages]# rpm -qi mysql-server
[root@zabbix packages]# rpm -qip mysql-server-5.1.73-7.el6.x86_64.rpm



(6)查询软件包的安装位置

  语法1:rpm -ql  "包名" (用于已安装的软件包)

  语法2:rpm -qlp ”二进制软件包名称“(用于未安装之前)

  -l (list) 列表

  -p(package)



[root@zabbix packages]# rpm -ql mysql-server
[root@zabbix packages]# rpm -qlp mysql-server-5.1.73-7.el6.x86_64.rpm



(7)查询某个文件属于哪个rpm安装包

  语法 rpm -qf "文件名"

  -f (file) 文件名



[root@zabbix packages]# rpm -qf   /usr/share/mysql/mysql_system_tables_data.sql
 mysql-server-5.1.73-7.el6.x86_64



(8)查询软件包的依赖性

  语法1  rpm -qR ”包名“

  语法1  rpm -qRp ”二进制软件包名称“

  -R(requires) 查询软件包的依赖性

  -p(package)查询未安装包信息的依赖性



[root@zabbix packages]# rpm -qRp mysql

[root@zabbix packages]# rpm -qRp mysql-5.1.73-7.el6.x86_64.rpm



  依赖性解决

  树形依赖:a-->b-->c,如果安装软件包a依赖b,安装软件包b依赖c,则我们可以依次安装c、b、a解决依赖问题。

  环形依赖:a-->b-->c-->a,我们可以同时安装这三个包来解决依赖问题。

  模块依赖:例如".so.2"结尾的模块,他并不是独立的一个软件包,他是软件包中的一个模块,我们可以通过安装包含这个模块的软件来解决依赖性(通过www.rpmfind.net查                     询该模块属于哪个软件包)。

  通过yum方式安装解决依赖性问题。

(9)rpm软件包的校验 

  语法:rpm -V "包名"

  返回结果:“S M 5 D L U G T ”   c/d/g/l/r  文件名 (如果返回结果为空,则说明软件安装后没有进行修改。)

  S :文件大小改变

  M:文件的类型及权限是否改变

  5:文件的MD5校 验值改变

  D:

  L:文件路径是否改变

  U:文件的属主是否改变

  G:文件的属组是否改变

  T:文件的时间是否改变

  c:配置文件

  d:普通文件

  g:鬼文件,该文件类型不应该被Rpm包包含

  l:授权文件(license file)

  r:描述文件 (read me) 



[root@zabbix packages]# rpm -V mysql



 (10)rpm包文件提取

  语法:

  rpm2cpio  “二进制软件包名称”  |  cpio -idv  .文件名

  将二进制rpm包转换成cpio格式,并通过cpio命令提取包中的文件,放入当前目录。

 

注意:rpm包只有在安装升级时,后面所跟参数为二进制软件包全名。在安装完成后的其他操作是在/var/lib/rpm数据库中进行查询,命令后面跟的参数为软件包的包名。



1 [root@zabbix rpm]# ls /var/lib/rpm/
2 Basenames     Filedigests  Name          Providename     Requirename     Sigmd5
3 Conflictname  Group        Obsoletename  Provideversion  Requireversion  Triggername
4 Dirnames      Installtid   Packages      Pubkeys         Sha1header



rpm包”yum在线管理“

 

 

 

本地光盘做yum源