yum install 覆盖手动安装

yum install 覆盖手动安装

注意:我几乎不知道我在这里做什么,因此这可能非常明显,但我无法在谷歌上找到我想要的东西。

运行 CentOS 6.7

昨天我关注了本指南设置 opendkim在我的服务器上,据我所知它正在工作。

本指南告诉我通过以下方式获取 opendkim 软件包

wget http://sourceforge.net/projects/opendkim/files/opendkim-2.4.2.tar.gz

随着

tar zxvf opendkim-2.4.2.tar.gz
cd opendkim-2.4.2
./configure --sysconfdir=/etc --prefix=/usr/local --localstatedir=/var
make
make install

我发现这不是最新版本(我知道我应该先检查一下 -__-)。我找到了指南的更新版本,显示现在可以通过安装yum install opendkim

我想转向使用该方法,但我对这些东西了解不够,不知道这是否会干净地覆盖东西 - 或者甚至根本不覆盖。

在删除/覆盖手动安装的同时使用 yum 安装 opendkim 最安全/最好的方法是什么(同时保持我的配置理想 - 但如果需要的话可以重做)

答案1

最好的方法是检查您编译的程序是否有卸载目标。所以你可以从一个新鲜的环境开始。

如果您想要 yum 覆盖文件,您应该知道 yum 是如何工作的。

让我们以 nginx 包为例。您可以%file选择描述软件包将安装的所有文件。

本节的一部分看起来像

%files
%license LICENSE
%doc CHANGES README
%{nginx_datadir}/html/*
%{_sbindir}/nginx
%{_datadir}/vim/vimfiles/ftdetect/nginx.vim
%{_mandir}/man8/nginx-upgrade.8*
%{_unitdir}/nginx.service
%config(noreplace) %{nginx_confdir}/fastcgi.conf
%config(noreplace) %{nginx_confdir}/fastcgi.conf.default

在这里你可以检查,你有两种文件,一种是以 为前缀的文件%config,另一种是不以 为前缀的文件。

两种文件的特性不同。基本文件被默默忽略并被 rpm 版本替换

配置文件取决于biavior noreplace,如果设置了该标志,您的配置文件将不会被覆盖,并且rpm版本将被添加到带有扩展名noreplace的同一目录中.rpmnew

如果此标志不存在,您当前的文件将保存在带有.rpmsave扩展名的同一目录中,并且将部署包配置。

如果您想返回到 rpm 版本,您只需删除软件包插入到 /etc 中的文件,或者使用 rpm 通知删除并移动正确的文件。

答案2

一种不那么示例的方法是检查make到底复制了哪些文件并删除/保存它们,然后安装yum并进行更改(如果已经配置了旧安装)。

命令是

make -n install

这不会执行安装,而只会显示make install可执行的命令。因此,您可以获取输出,对其进行编辑并将复制命令替换为删除。并执行它以从源中删除安装。

然后安装yum

相关内容