linux rpm安装,及效验解释

linux软件安装

软件包分类:

一、源码包

1.源码包优点:

1开源,如果有足够的能力,可以修改源代码; 
2可以自由选择所需的功能; 
3软件是编译安装,所以更加适合自己的系统,更加稳定、效率更高; 
4卸载方便;

2.源码包缺点:

1安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误; 
2编译过程时间较长,安装比二进制安装时间长; 
3因为是编译安装,安装过程中一旦报错新手很难解决;

3.脚本安装包:

所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行脚本实现一键安装。但实际安装的还是源码包和二进制包 
1优点:安装简单、快捷; 
2缺点:完全丧失了自定义性;

二、二进制包(RPM包)

1.二进制包的优点: 
1包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载; 
2安装速度比源码包安装快的多; 
2.二进制包的缺点: 
1经过编译,不再可以看到源代码; 
2功能选择不如源码包灵活; 
3依赖性;

rpm命令管理

rpm包命名规则

httpd-2.2.15-15.el6.centsos.1.i686.rpm

httpd软件包名-2.2.15软件版本-15发布的次数-el6.centos适合的Linux平台-i686适应的硬件平台-rpm包扩 
展名,el6是redhat的企业版

1、RPM包的来源:

所有RPM包都在系统光盘的Packages目录中

2、RPM包命名规则:

软件包名-软件版本-软件发布的次数-适合的Linux平台-适合的硬件平台-包扩展名

3、RPM包依赖性:
a、树形依赖:

a->b->c 解决方法:从后往前安装

b、环形依赖:

a->b->c->a 解决方法:放在一条命令中安装即可

c、模块依赖:

库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就是以”.so.数字”结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。

rpm 安装

rpm -ivh 包全名

包全名:完整的包名,安装和更新时用包全名(未安装过的包) 
包名:在操作已经安装的包是使用包名

选项:  
-i (install) 安装
-v (verbose) 显示详细信息
-h (hash) 显示进度
--nodeps 不检查依赖性

一般先装主包,再装附包(必须解决依赖性,用–nodspe装上了)

升级与卸载

1、升级命令

rpm -Uvh 包全名(要升级到的软件版本)

如果没有安装这个软件的任何版本,这个命令可以代替 rpm -ivh。

另外补充: 
在Ubuntu中:sudo apt-get update ——更新软件包列表 
sudo apt-get upgrade ——更新(或者说升级嘛)所有已安装的包

2、卸载命令

rpm -e 包名(比如httpd,不需要包全名)

这个命令不同于安装和升级,它可以在任何目录运行,原理是去/var/lib/rpm目录中的数据库(如__db0)中查找对应的软件包(已经安装过的rpm包都在这些数据库中),然后卸载。

注意:–nodeps这个选项不管是在安装和卸载的时候,最好都不要使用。 
rpm安装包安装的位置是由软件包开发者决定的,安装后的位置会非常凌乱,所以最好是使用rpm -e命令卸载。 
相对于二进制安装,源码安装是指定安装目录了,卸载的时候只需要删除对应的目录就可以完全的卸载,不留一点残余。

rpm 包查询

1.查询是否安装:

rpm -q 包名 (查询包是否安装,query) 
rpm -qa (查询所有已经安装的rpm包,all) 

2.查询软件包详细信息:

rpm -qi 包名 (查询软件信息,information) 
rpm -qip 包名 (查询未安装包信息,package)

3.查询包中文件安装位置:

rpm -ql 包名 (l , list,列表) 
rpm -qlp 包名 (查询未安装包信息,package)

4.查询系统文件属于哪个RPM包:

rpm -qf 系统文件名 (查询系统文件属于哪个软件包,file)

5.查询软件包的依赖性:

rpm -qR 包名 (-R 查询软件包的依赖性 ,requires ) 
rpm -qRp 包名 (-p 查询未安装包信息 ,package)

rpm包的默认安装路径 
/etc/ 配置文件安装目录 
/usr/bin/ 可执行的命令安装目录 
/usr/lib/ 程序程序说使用的函数库保存位置 
/usr/share/doc/ 基本的软件使用手册保存位置 
/usr/share/man/ 帮助文件的保存位置

rpm 包的效验

1.效验 
rpm -V 已安装的包名 
-V (verify) : 校验指定RPM包中的文件 
rpm -V httpd 
执行后, 无任何提示, 代表该文件没有被做任何修改判断本地的apache 与官方给出的是否一致, 从而判断是否被人修改

修改文件 
文件目录:/etc/httpd/conf/httpd.conf 在注释行添加任意内容后, 再次执行 
提示 : S.5....T. c /etc/httpd/conf/httpd.conf 
2.验证内容中的8个信息:

S : 文件大小是否改变
M : 文件的类型或文件的权限( rwx )是否被改变
5 : 文件MD5 校验和是否改变( 可以看成文件内容是否改变 )
D : 设备的主从代码是否改变
L : 文件路径是否改变
U : 文件的属主( 所有者 ) 是否改变
G : 文件的属组是否改变
T : 文件的修改时间是否改变 

3.验证内容中的文件类型

c (config file) : 配置文件
d (documentation) : 普通文档
g (ghost file) : "鬼"文件, 很少见, 就是该文件不应该被这个RPM包包含
L (license file) : 授权文件
r (read me) : 描述文件

4.MD5校验

用来校验文件的完整性(文件内容是否被改变) 
例如, 在官网下载的游戏, 官方会给出MD5校验码, 将下载的游戏通过专用的MD5校验工具校验后生成一份MD5校验码, 对比两份校验码

是否一致, 不一致则说明,下载的文件可能丢包, 可能文件损坏, 可能被其他人动过手脚一直木马等

如果安装报下面警告的解决方法详见(http://blog.csdn.net/forever_kirito/article/details/78368570) 
warning: httpd-2.2.15-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY 
这个警告的解决方法: 
rpm –import /etc/pki/rpm-gpg/RPM*

你可能感兴趣的:(linux)