0

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

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

我需要防止擦除所有旧版本的包,只是替换了存在的新文件

4

1 回答 1

1

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

...
%files
...
%config(noreplace) /opt/CDA/agent/conf/agent.ini # similar for other config files
...
于 2012-04-24T22:11:49.010 回答