要使用的rpm U选项?

要使用的rpm U选项?,rpm,rpmbuild,Rpm,Rpmbuild,我想升级我的安装组件,以这样的方式,只有指定的文件被替换,并且结构不会改变 rpm -qlp CDA-4.2.1-201203020211.i386.rpm /opt/CDA/agent/bin/agent_client /opt/CDA/agent/bin/Agent /opt/CDA/agent/bin/cda_agent /opt/CDA/agent/conf/agent.conf /opt/CDA/agent/conf/agent.ini rpm -qlp CDA-4.2.1.1

我想升级我的安装组件,以这样的方式,只有指定的文件被替换,并且结构不会改变

rpm -qlp CDA-4.2.1-201203020211.i386.rpm 
/opt/CDA/agent/bin/agent_client
/opt/CDA/agent/bin/Agent
/opt/CDA/agent/bin/cda_agent
/opt/CDA/agent/conf/agent.conf
/opt/CDA/agent/conf/agent.ini


 rpm -qlp CDA-4.2.1.1-201203020211.i386.rpm 
 /opt/CDA/agent/bin/Agent




   installed component CDA-4.2.1-201203020211.i386.rpm   
       when i do rpm -U  CDA-4.2.1.1-201203020211.i386.rpm 
          all the files get remvoved excpet /opt/CDA/agent/bin/Agent, 
        i'm struggling with the right rpm -U addional options,
         i want only /opt/CDA/agent/bin/Agent to be replaced

我需要防止删除包的所有旧版本,并替换现有的新文件

新rpm必须包含所有文件,而不仅仅是要更新的文件。如果将文件列为
%config(noreplace)
,则在更新期间不会替换这些文件,但如果安装的文件已更改,则会在安装更新的rpm后创建X.rpmnew文件。换句话说,您的CDA.spec应该具有:

...
%files
...
%config(noreplace) /opt/CDA/agent/conf/agent.ini # similar for other config files
...

谢谢,是否可以只申请(noreplace)文件