我是linux新手,想了解使用某些命令的原因。 我正在尝试按照这里的说明在CentOs上安装PostgreSQL。
首先我们做rpm -ivh pgdg-centos91-9.1-4.noarch.rpm ,它将rpm包安装到系统中。 但是,为什么它要求我们再次yum install postgresql91-server (我假设安装postgresql),如果我们已经使用rpm -ivh来安装软件包?
另外,在[base]和[updates]下添加行exclude=postgresql*到/etc/yum.repos.d/CentOS-Base.repo的原因是什么。 为什么我们排除yum访问这些包,然后用yum来安装postgresql91-server ?
yum与与您的CentOS版本相关的联机存储库接口。
rpm是为Red Hat / CentOS平台开发的应用程序的包pipe理器和打包格式。 您的rpm命令正在安装下载的打包文件,而不是yum存储库的一部分。
在Windows世界中,就像Windows Update(yum)和下载一个软件并双击安装程序(rpm)之间的区别。
它似乎也好像你正在使用的postgresql版本比通过正常的CentOS频道(“Base”和“Updates”)更新版本。 您列出的yum命令安装的软件包来自不同的第三方软件存储库 。
看起来你使用的PostgreSQL数据库包直接提供PostgreSQL而不是通过CentOS来的。 说明和推理在这里详述 。
因此,您被要求通过使用您列出的exclude=语句来防止安装CentOS发行的版本。 这是一个预防措施,以避免CentOS的旧版postgresql与您正在安装的较新版本之间发生冲突。