我想知道是否有辦法執行以下操作: 我在系統上安裝了rpmA-v1。它有很多配置文件,用戶可以根據自己的目的進行編輯。然後,我想安裝rpmA的新版本,比如rpmA-v2,在安裝之前,我想備份那些已編輯的配置文件,而不是再次編輯配置文件。RPM中已更改文件的列表
有什麼辦法可以知道在這種情況下編輯了哪些文件?
我想知道是否有辦法執行以下操作: 我在系統上安裝了rpmA-v1。它有很多配置文件,用戶可以根據自己的目的進行編輯。然後,我想安裝rpmA的新版本,比如rpmA-v2,在安裝之前,我想備份那些已編輯的配置文件,而不是再次編輯配置文件。RPM中已更改文件的列表
有什麼辦法可以知道在這種情況下編輯了哪些文件?
如果你正在談論有關給定的包配置文件,rpm
已經爲這個被譽爲.rpmnew
/.rpmsave
相當強勁的機制。
如果包正在升級,在包創建者/維護者的自由裁量權有可能採取rpm
2可能採取的行動:
/etc/myprog/config
,並新安裝在它旁邊,作爲/etc/myprog/config.rpmnew
。 *.rpmnew
文件的存在通常意味着舊配置未被編輯。/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
進行圖形差異/合併。
@mvp提供了一種很好的方法來確定更改的配置文件 - 只要它們被標記爲這樣。
如果不是,您可以/應該使用rpm -V packagename
驗證已安裝的軟件包,以顯示任何已更改的文件。
這也是一個好方法!非常感謝! –
咦?這真是太棒了:)我甚至都沒有說RPM會自己處理這種情況。會試試這個。非常感謝你! –
@ mr.nothing但是,這隻包含打包程序標記爲「配置文件」的文件。如果他沒有這樣做,你就卡住了。 – glglgl
@glglgl,hm,從來沒有聽說過...我使用maven rpm插件創建了我的包,可能沒有這樣的選項來將某些文件標記爲配置文件。謝謝你讓我知道!我會稍微調查一下。 –