一、程序包的组成:
1、底层内核:进程管理、内存管理、网络协议栈、驱动程序等
2、应用程序 :各种应用 使大家更好的通过它完成工作。
二、一个合格的程序包包含以下内容:
1、二进制程序,通常在linux /bin、/sbin、/usr/bin、 /usr/sbin等目录下。
2、库文件。通常在linux /lib、/lib64、/usr/lib、/usr/lib64等目录下。
3、配置文件。一般存放在linux /etc目录下。
4、说明和帮助文档,Linux man 和 info文件中。
三、检验一个合格的包管理器需要从哪几方面入手:
1、打包,就是将一个合格的程序包打包成合格的归档文件也就是我们所说的压缩文件。
2、安装,将归档文件也就是压缩文件展开到本地硬盘中,使其可以正常使用。
3、升级,更新程序包的新功能和bug.
4、卸载,从本地硬盘中移除已展开的归档文件;将其删除。
5、 校验。和归档文件的源包进行对比确保程序包是否被人修改过、是否完整一致。
四、根据系统划分由包管理器的种类:
1 、debian和ubuntu使用的deb.
2、redhalt cnetos等Linux使用的rpm.
注:发展到后期RPM is Package Manager.
五、rpm的基础知识
1、rpm是由rpm build打包工具根据specs文件打包生成。
2、rpm包根据功能的不同分为核心包跟支包,核心包是比较常用的功能;支包是特定功能,且在版本号前面有个devel作为标识。
3、 rpm包的名字,如:bash-4.2.4-1.el7.x86_64.rpm
1)bash 是包的名字;
2)第一个4 是包的主版本号;
3)第一个2是修正版本号;
4)第二个4是第一次的包的release号;
5)第一个1是RPM针对本包所做的release号;
6)el7代表本包可以用在哪个系统上什么版本。
7)x86_64表示包属于32位还是64位平台。
4、rpm包在本地生成的数据库是/var/lib/rpm/。
5、rpm包和包之间存在依赖关系,加入A和B依赖于C,卸载了C;AB就无法运行使用。
6、获取rpm的途径:
1)发行版提供的程序包;
2)Fedora-EPEL
3)项目的官方站点
4)搜索引擎
5)系统安装光盘镜像。
六 、用RPM的基本命令对程序包进行管理
1、RPM的命令格式
rpm [命令选项] [ 命令参数] 操作的程序包名称
2、RPM的安装
rpm –ivh --nodeps –-force sudo
[解析] i为安装,v为显示详细信息,h为hash是进度信息,nodeps忽略包的依赖关系,force是强制的意思!
3、RPM的卸载
rpm –e [--nodeps] sudo
[解析] 需要注意的是在卸载软件包的时候若和其它包有依赖关系,可以用--nodeps来强制卸载
4、RPM的更新
rpm –Uvh sudo
rpm –Fvh sudo
解析:Uvh为判断是否有旧版程序包,有则升级;如果没有,则安装;Fvh 判断是否有旧版程序包,有则升级;如果没有不进行任何操作;
5、RPM的查询
rpm –q[a |f |p |i |l |d |c] sudo
[解析]
-qa 查询所有已安装的软件包;
-qf 查询 文件所属软件包;
-qp 查询软件包(通常用来看下还未安装的软件包);
-qi 显示软件包信息;
-ql 显示软件包中的文件列表;
-qd 显示被标注为文档的文件列表;
-qc 显示被标注为配置文件的文件列表;
-p: 查询针对是未安装的程序包文件;
-q --scripts:查询程序包相关的脚本:
preinstall: 安装前脚本;
postinstall:安装后脚本;
preuninstall: 卸载前脚本;
postuninstall: 卸载后脚本。
6、RPM的校验
rpm -V sudo(注意:此处只有改动相关文件后才会输出信息)
结果解析:S.5.L.T….
-V校验指定rpm包中的文件
校验内容中的8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验和是否改变(可以看成文件内容是否改变)
D 设备的中,从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属主是否改变
T 文件的修改时间是否改变
文件类型
c 配置文件(config file)
d 普通文档(documentation)
g “鬼”文件(ghost file),很少见,就是该文件不应该被rpm包包含
l 授权文件(license file)
r 描述文件(read me)
7、RPM包的校验
来源合法性验正:非对称加密
完整性验正:单向加密
导入密钥:rpm --import /PATH/TO/KEY_FILE
校验:rpm -K /PATH/TO/RPM_FILE
rpm -K /var/tmp/yum-root-vsiZgP/nmap-6.49BETA4-1.x86_64.rpm
七 、yum的介绍和命令操作
1、YUM: Yellowdog Updater Modified
2、yum工作流程图
3、 yum repositories:
客户端获取文件的三种途径:
ftp://hostname/PATH/TO/REPO
http://hostname/PATH/TO/REPO
file:///PATH/TO/REPO
4、yum程序的配置文件:
1)/etc/yum.conf
定义全局配置:对所有仓库都适用的配置
2)/etc/yum.repos.d/*.repo
一个文件通常用于一个或一组功能相近或相关的仓库
定义一个仓库指向:
3)更新yum仓库
yum repolist显示可用yum仓库列表
yum repoinfo 显示yum仓库列表详细信息
5、yum命令
安装:yum install sudo
卸载:yum remove sudo –y
更新:yum update sudo
查询:
yum info sudo 查询包的简要信息
yum search sudo 基于关键字的搜索,可用于查询某个包的核心包跟支包。
yum list sudo 查询已安装的包
yum provides /etc/sudo.conf 查询文件由哪个包安装的
包组管理
yum group紧跟yum命令 选项 包组名称,此项仅以groupinfo为例。
6、用本地光盘当仓库源及创建本地仓库
1)用本地光盘当仓库源:
mkdir /cdrom
mount /dev/cdrom /cdrom
vim /etc/yum.repos.d/CentOS-Base-aliyun.repo
注意:本地仓库源速度优于互联网所以请指定cost值,默认为1000
2)创建本地仓库
yum install createrepo
mkdir /reposoure
cp -af /cdrom /reposoure/
rm –rf /reposoure/cdrom/repodata
createrepo /reposoure/cdrom/
八、dnf的诞生
虽然yum可以解决包与包之间的依赖关系,但是还是有部分关联不清。所以出现了dnf.
但是因目前还在测试中,所以今天本文不在此做详细讲解。