2013-06-05 82 views
3

我想知道是否有辦法執行以下操作: 我在系統上安裝了rpmA-v1。它有很多配置文件,用戶可以根據自己的目的進行編輯。然後,我想安裝rpmA的新版本,比如rpmA-v2,在安裝之前,我想備份那些已編輯的配置文件,而不是再次編輯配置文件。RPM中已更改文件的列表

有什麼辦法可以知道在這種情況下編輯了哪些文件?

回答

5

如果你正在談論有關給定的包配置文件,rpm已經爲這個被譽爲.rpmnew/.rpmsave相當強勁的機制。

如果包正在升級,在包創建者/維護者的自由裁量權有可能採取rpm 2可能採取的行動:

  1. 舊的配置被完好地保存下來說在/etc/myprog/config,並新安裝在它旁邊,作爲/etc/myprog/config.rpmnew*.rpmnew文件的存在通常意味着舊配置未被編輯。
  2. 舊的配置被重命名爲/etc/myprog/config.rpmsave,並且新的配置被安裝爲/etc/myprog/config(替換舊配置)。新的配置可能是完全新鮮的(香草),或者它可能包含從舊版本.rpmsave'd版本繼承的設置。 *.rpmsave文件的存在是相當健壯的標誌,配置文件實際上由rpm編輯。

通常情況下,一個或多個包(或整個系統)的升級後,推薦搜索使用命令所有.rpmnew/.rpmsave文件,如

find /etc -name "*.rpmsave" -or -name "*.rpmnew" 

和carefuly檢查所有CONFIGS對他們.rpmnew/.rpmsave版本(如果它們在附近)以確保設置是正確的。您可以使用diff -u來查看文本差異,或使用meld進行圖形差異/合併。

+0

咦?這真是太棒了:)我甚至都沒有說RPM會自己處理這種情況。會試試這個。非常感謝你! –

+1

@ mr.nothing但是,這隻包含打包程序標記爲「配置文件」的文件。如果他沒有這樣做,你就卡住了。 – glglgl

+0

@glglgl,hm,從來沒有聽說過...我使用maven rpm插件創建了我的包,可能沒有這樣的選項來將某些文件標記爲配置文件。謝謝你讓我知道!我會稍微調查一下。 –

3

@mvp提供了一種很好的方法來確定更改的配置文件 - 只要它們被標記爲這樣。

如果不是,您可以/應該使用rpm -V packagename驗證已安裝的軟件包,以顯示任何已更改的文件。

+0

這也是一個好方法!非常感謝! –

相關問題