各个发行版中的前端工具:
RHEL/CentOS系统:
yum,Yellow dog Update Modifier
yum在实施程序包安装、升级、卸载等过程中,会开启事务;
事务一般具有四个特性:ACID
所谓事务,即将整个操作过程视为一个不可分割的整体,其中的操作要么全部都执行,要么全部都不执行;
dnf:Fedora22+
Debian/Ubuntu系统:
apt-get:实现安装、卸载、升级、降级等deb包的管理工作;
apt-cache:实现基于关键字进行搜索功能,管理本地缓存及缓存的元数据;
S.u.S.E系统:
zypper
在CentOS系统中,程序包管理器的核心是rpm;
其后端使用rpm命令行工具;
前端使用yum命令行工具或dnf命令行工具;
rpm命令行工具:
功能:
1.将编译好的应用程序的各个文件打包成一个或多个程序包;
2.支持rpm程序包的安装、卸载、升级、降级、查询、校验及程序包信息数据库管理功能;
rpm程序包文件的组成:
1.被封包的程序文件;
2.文件清单;
3.程序在安装或卸载时所需要运行的脚本,共有四种:
preinstall:在正式的安装操作开始之前所需要运行的脚本,标识为"%pre";
postinstall:在安装完成之后所需要运行的脚本,标识为"%post";
preuninstall:在正式的卸载操作开始之前所需要运行的脚本,标识为"%preun";
postuninstall:在卸载完成之后所需要运行的脚本,标识为"%postun";
注:在一个rpm程序包中,并不一定同时有这四类脚本,也可以没有这些脚本;
rpm数据信息的数据库(公共):
目录:/var/lib/rpm
rpm程序包的获取途径:
1.系统的发行版关盘;
2.官方的文件服务器或者镜像站点;
阿里云镜像
网易镜像
搜狐镜像
...
3.某个应用程序项目的官方站点;
4.第三方组织制作的rpm程序包站点:
Fedora EPEL:Extra Package for Enterprise Linux;红帽官方的社区组织,通常来说,在上述的镜像站点中也会包括EPEL镜像;
5.某些专用的搜索引擎:
6.自己动手制作rpm程序包;
注:除了自己制作的rpm程序包之外,建议在获取程序包后,对其实施完整性校验;
软件包管理器(2)
rpm和yum两个命令行工具
rpm命令行工具:
rpm - RPM Package Manager
QUERYING AND VERIFYING PACKAGES:
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...