CentOS 7上的程序管理:rpm、yum和源码编译安装

在Linux的早期时代(也许吧?我猜的。也可能是Unix。),想要在系统上安装一款应用程序,是比较复杂的。需要专业的人员自行获取程序的源代码,并且编译安装,这是非常的复杂且需要一定的专业功底的,这种方式叫做源码编译安装(后面会描述)。

再后来就有人/组织将这个过程简化了,他们将事先已经编译好的软件打包后,放到互联网上供用户下载。用户下载适用于自己的操作系统和硬件平台的软件包之后,只需要将其“解压”,那么该软件包所包含的各种文件(二进制程序文件、文档文件、库文件和配置文件等)就会基于包作者事先定义好的位置进入各自对应的目录下了。在CentOS上,这种打包工具就叫做rpm,即rpm安装

但是这种工具又存在一个缺陷,那就是它无法自动解决RPM包之间的依赖性。

假设安装A包需要依赖于B包,安装B包又要依赖于C包。

A --> B --> C

当你安装A包的时候提示你要安装B包,你安装B包的时候又提示你要安装C包,它无法自动去解决这个依赖关系。并且你还要自己去下载被依赖的B包和C包。

因此诞生了一种更高级的包管理器,用于解决上述的RPM的问题,在CentOS上,这种包管理器就叫做yum,即yum安装。不过,在未来,可能是CentOS 8的时候,yum会被dnf工具所取代,在Fedora系统上,已经有dnf工具了。

在不同的Linux发行版中,这种软件包的组织形式有点不同,见下表:

发行版   初级包管理器   高级包管理器   包名称  
RHEL系列:Red Hat、CentOS、Fedora   rpm   yum、dnf   *.rpm  
Debian、Ubuntu   dpkg   apt-get   *.deb  
S.u.S.E   rpm   zypper   *.rpm  

本文的讲解顺序是先讲rpm安装,再讲yum安装,最后说最复杂的源码编译安装。

 

RPM

在当前的运维环境下,一般我们安装某款软件,会直接使用yum命令,而不会单独去下载rpm包通过rpm命令来完成。

更多的是使用rpm命令去执行一下对程序包的查询操作。

程序包的获取

推荐从软件的官方站点获取,或者可以在一些比较大型的受信任的镜像站点获取。

系统发行版的光盘。

项目的官方站点。

等等。

开源镜像站点及一些rpm包提供站点。

阿里云

网易

EPEL

https://pkgs.org/

自己动手制作rpm包。

程序包的名称

程序包(rpm包)名称的大概格式如下。

NAME-VERSION-RELEASE.OS.ARCH.rpm

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspyfp.html