注意:我几乎不知道我在这里做什么,因此这可能非常明显,但我无法在谷歌上找到我想要的东西。
运行 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