源码包
脚本安装包
二进制包(RPM包、系统默认包)
2、源码包
源码包的优点是
1、开源,如果有足够的能力,可以修改源代码
2、可以自由选择所需的功能
3、软件是编译安装,所以更适合自己的系统,更加稳定也效率更高
4、卸载方便
源码包的缺点
1、安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误。
2、编译过程时间较长,安装比二进制安装时间长
3、因为是编译安装,安装过程中一旦报错新手很难解决
2、二进制包
1)分类
DPKG包:是由Debian Linux所开发出来的包管理机制,通过DPKG包,Debian Linux就可以进行软件包管理。主要应用在Debian和unbuntu中。
RPM包:是由RedHat公司所开发的包管理系统。功能强大,安装、升级、查询和卸载都非常简单和方便。目前很多Linux都在使用这种包管理方式,包括Fedora、CentOS、SuSE等。我们学习的是CentOS6.3,所以我们将要学习RPM包管理系统
2)特点
RPM包的优点
1、包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
2、安装速度比源码包安装快的多
RPM包的缺点:
1、经过编译,不再可以看到源代码
2、功能选择不如源码包灵活
3、依赖性
RPM包管理-rpm命令管理
1、RPM包命名规则
http-2.2.15-15.e16.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
e16.centos 适合Linux平台
i686 适合的硬件平台
rpm rpm包扩展名
包全名:操作没有安装的软件包,软件包使用包全名
包名:操作的是已经安装的软件包,软件包使用包名
2、RPM包依赖性
树形依赖:a → b → c
环形依赖:a → b → c → a
模块依赖:模块依赖查询网站:
www.rpmfing.net
包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名: 操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
RPM安装
1、包命名
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
e16 软件发行商。e16是RedHat公司发布,适合RHEL6.x(Red HatEnterprise Linux)和Centos6.x下使用
i686 适合的硬件平台。RPM包可以在不同的硬件平台安装,选择适合不同CPU的软件版本,可以最大化的发挥CPU性能,所以出现了所谓i386(386以上计算机都可以安装)、i586(586以上的计算机都可以安装)、i686(奔腾II以上计算机都可以安装,目前所有的CPU都是奔腾II以上,所以这个软件版本居多)、x86_64(64为CPU可以安装)和noarch(没有硬件限制)等文件名了。
rpm rpm包的扩展名。我们说过Linux下文件不是靠扩展名区分文件类型,也就是Linux中扩展名没有任何含义。可是这里怎么又出现了扩展名呢?原因很简单,如果我不把RPM的扩展名叫做“rpm”,管理员很难知道这是一个RPM包,当然也就无法正确安装了。也就是说如果RPM包不用“.rpm”作为扩展名,系统可以正确识别没有问题,可以是管理员很难识别这是个什么样的软件。
2、安装
1)默认安装位置
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
3、安装命令
rpm-ivh 包全名 #注意一定是包全名。如果跟包全名的命令要注意路径,因为软件包在光盘当中
选项:
-i(install) 安装
-v (verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性
--nodeps 不检测依赖性安装。软件时会检测依赖性,确定所需的底层软件是否安装。如果没有安装则会报错。如果我不管依赖性,强制性安装,可以以使用这个选项。注意:这样不检测依赖性安装的软件基本是不能使用的,所以不建议这样做。
-replacefiles 替换文件安装。如果安装软件包,可是包中部分文件已经存在,那么正常安装时候,会报错“某个文件已经存在”从而导致软件无法安装,使用这个选项可以忽视这个报错,而覆盖安装
--replacepkgs 替换软件包安装。如果软件包已经安装,此选项可以把软件包重复安装一遍。
--force 强制安装。不管是否已经安装,都重新安装。就是-replacefiles和-replacepkgs的综合。
--test 测试安装。不会实际安装,只是检测一下依赖性。
--prefix 指定安装路径。为安装软件指定安装路径,而不使用默认安装路径。注意:如果指定了安装路径,软件没有安装到系统默认路径中的话,系统会找不到这些安装的软件,需要进行手工配置才能被识别。所以rpm我们一般都采用默认安装路径。
服务启动
service 服务名 start|stop|restart|status
参数:
start 启动服务
stop 停止服务
restart 重启服务状态
RPM包升级
rpm -Uvh 包全名
选项:
-U(upgrade) 升级安装,如果没有安装过,系统直接安装。如果安装过的版本较旧,则升级到最新版本(upgrade)
rpm -Fvh 包全名
选项:
-F(大写)升级安装,如果没有安装。必须安装有较旧版本,才能升级(freshen)
卸载
rpm -e 包名
--nodeps 不检查依赖性
查询
rpm -q 包名 #查询是否安装
选项: -q 查询(query)
语法: #rpm -qa | grep httpd #显示所有安装
rpm -qa 包名 #查询包是否安装
#rpm-qa #查询软件包详细信息
#查询所有已经安装的RPM包
选项:-a 所有(all)
rpm -qa |grep httpd 显示所有安装包
#rpm -qi 包名
选项: -i 查询软件信息(information)
-q 查询未安装包信息(package)
rpm -qi 包名 查询包的信息
查询包中文件安装位置
#rpm -ql 包名
选项: -l 列表(list)
-p 查询未安装包信息(package)
rpm -qip 包全名 查询没有安装包的信息
-i information
rpm -ql 包名 查询包中文件的安装位置
rpm -qlp 包全名 查询没有安装的包,打算安装位置
-l list
rpm -qf 系统文件名 查询系统文件属于哪个包
rpm -qF 包名 查询软件包说以来的软件包
rom -qRp 包全名 查询没有安装的包的依赖性
rpm命令管理-校验和文件提取 RPM包校验
验证
1)基本命令
rpm -Va
选项: -Va 校验本机已经安装的所有软件包
rpm -Vf 系统文件名
选项: -Vf校验某个系统文件是否被修改
#rpm -V 已安装的包名
选项:-V校验指定RPM包中的文件(verify)
验证内容中的8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验和是否改变(可以看成文件内容是否改变)
D 设备的中。从代码是否改变
L 文件路径是否改变
U 文件的属性(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
文件类型
c 配置文件(config file)
d 普通文档(documentation)
g “鬼”文件(ghost file),很少见,就是hi该文件不应该被这个RPM包包含
l 授权文件(license file)
r 描述文件(read me)
数字证书
刚刚的校验方法只能对已经安装的RPM包中的文件进行校验,但是如果RPM包本身就被动过手脚,那么校验就不能解决问题了。我们就必须进行数字证书验证。
数字证书样子有如下特点:
首先必须找到原厂否公钥文件,然后进行安装
再安装RPM包是,会去提取RPM包中的证书信息,然后和本机安装的原厂证书进行验证
如果验证通过,这允许安装,如果验证不通过,则不允许安装并报警
1)数字证书位置
那么数字证书在哪里呢?其实Centos6.3的第一张光盘中就有,当然它默认也会放在系统中。
[root@localhost ~]# ll/mnt/cdrom/RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root 1706 11月 28 2013/mnt/cdrom/RPM-GPG-KEY-CentOS-6
#光盘中的数字证书位置
[root@localhost ~]# ll/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
-rw-r--r--. 1 root root 1706 11月 27 2013/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#系统中的数字证书位置
2)数字证书导入
[root@localhost ~]# rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
选项: --import 导入数字证书
我们如何查询系统中安装好的数字证书呢?命令如下:
[root@localhost ~]# rpm -qa | grepgpg-pubkey
gpg-pubkey-c105b9de-4e0fd3a3
本文出自 “吴老二” 博客,谢绝转载!
原文地址:http://9827789.blog.51cto.com/9817789/1656940