1、软件包分类
源码包和二进制包。源码包是可以自己定义的安装包,开源,可以修改,例如一些xx.c源程序文件。二进制包是编译好的二进制包,无法进行修改,例如rpm包等。
源码包优缺点
- 优点:(1)开源,有足够能力可以修改源代码。(2)可以自由选择所需的功能;(3)编译安装,更适应自己的系统,稳定性更高;
- 缺点:(1)安装步骤比较多;(2)编译安装,安装时间比较长;(3)安装出错,新手一般没办法解决;
二进制包优缺点:
Debian和ubuntu系列的linux系统使用DPKG包,Rethat公司系列如centos使用的是rpm包。
- 优点:(1)包管理系统简单;(2)安装速度快;
- 缺点:(1)没有源码的优点;(2)具有依赖性,主要有树形依赖、环形依赖、函数库依赖。对于在安装过程rpm包过程中,出现前两种依赖情况需要安装相关的依赖包即可,而对于函数库依赖需要去www.rpmfind.net搜索对应的rpm包。
解决二进制包安装的两种方法:(1)人工手动安装依赖包;(2)yum在线安装;
2、软件包安装
rpm包建议安装在默认路径中,因为数据库有记录安装位置,后续如果要删除的话直接rpm -e可以直接删除。二进制安装则需要指定安装目录,因为卸载软件包是靠rm删除,不指定得到处去找相关目录文件。rpm包安装位置如下:
rpm包安装命令:
rpm -ivh 包全名 [扩展选项]
选项:
-i:install安装;
-v:显示更详细的信息;
-h:显示安装进度;
扩展选项:
--force:强制覆盖安装时使用较多
rpm包升级:
rpm -Uvh 包全名
选项:
-U:升级安装,如果没有安装过旧版,则直接安装新版。如果已经安装旧版,则升级;
rpm -Fvh 包全名
选型:
-F:升级,如果没有安装旧版,则不进行安装新版。如果已经安装旧版,则升级;
rpm包卸载:
rpm -e 包名
选项:
-e:卸载
注意:软件包安装的时候,对于各种依赖包是由下到上逐层安装,而卸载的时候是从上到下的层次进行逐级卸载。在生产环境中建议用rpm -e进行卸载,这样对于上层还有依赖的话会提示出来,如果使用yum进行卸载某个软件包,则该软件包以及上层的所有依赖全部卸载,没有提示确认过程。
查询:
查询软件包是否安装:
rpm -q 包名
选项:
-q:查询
rpm -qa 查询所有安装的软件包
选项:
-a:所有
rpm -ql 包名 查询包安装位置
rpm -qlp 包全名 查询未安装包安装位置
rpm -qi 包名 查询包信息
rpm -qip 包全名 查询未安装包信息
rpm -qR 包名 查询软件包依赖性
包名:如果操作的是已经安装的软件包,则使用包名即可;
包全名:若是操作未安装的软件包,则使用包全名;
验证
rpm -Va
校验本机已经安装的所有软件包
rpm -V [已安装的包名]
选型:
-V:检验指定RPM包中的文件
rpm -Vf 【系统文件名】
选项:
-Vf:检验某个系统文件是否被修改
对于检验后的结果解读如下:
前面说了安装软件包的验证,但是这种校验是基于什么基础之上进行校验呢?如果对于初始的下载下来的rpm包就被修改过,这种校验是否有意义?----解决这个问题的办法是引入数字证书:rpm --import [数字证书文件],在centos7中查看是默认已经导入过的:
rpm包中文件的提取
cpio
(1)数据的备份与还原,不建议用;
(2)主要是做rpm包中文件的提取:rpm2cpio [rpm包] | cpio -idv .[绝对路径];
举例,rpm包中文件的提取:
rpm2cpio /mnt/cdrom/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm | cpio -idv ./etc/httpd/conf/httpd.conf
2.1 RPM包安装的Apache:
启动:
- service httpd start
- /etc/rc.d/init.d/httpd start/restart/stop(绝对路径,有时候也能在/etc/init.d/目录下找到,是软链接)
网页位置所在位置:/var/www/html/,创建网页文件index.html,修改网页文件不需要重启服务;
配置文件所在位置:/etc/httpd/conf/httpd.conf
2.2 RPM包在线安装(yum安装)
CentOS-Base.repo文件内容如下:
各项解读如下:
可以搭建本地光盘yum源,过程较为简单,不再阐述。
yum命令
yum list 查询所有可安装的软件列表
yum list 【包名】 查询yum源服务器中是否包含某个软件包
yum search 【关键字】
yum info 【软件包】 查询指定软件包的信息
yum -y install [包名]
yum -y update 【包名】
yum remove 【包名】 (慎用)
yum组管理命令:
yum grouplist 列出所有可用的软件组列表
yum groupinstall 【软件组名】
源码包安装
对于生产环境一般建议源码安装,方便修改相关功能。
例如,对于Apache,RPM包的安装位置为:
源码包安装为(在usr/local目录下新建安装目录apache2):
源码包安装的具体步骤:
(1)下载软件包
(2)解压缩
(3)进入解压目录
(4)编译前准备,./configure。一般会通过./configure --prefix=/usr/local/【自己命名】(建议安装路径)来指定安装路径。此步骤的主要是检查系统环境是否满足、定义需求功能、把系统环境检测结果和定义好的功能选项写入Makefile文件;
(5)编译,make。
(6)清空编译内容(非必须步骤),make clean。在(4)(5)报错时进行使用。
(7)make install:编译安装
删除:源码包没有删除命令,需要删除的话直接删除目录即可;
打入补丁文件:diff 选项 old new(了解内容)
脚本包安装:
通过脚本实现rpm包或者源码包的自动安装。优点是安装方便快捷,缺点是不能自定义相关功能、版本等;