2013-01-24 20 views
19

Używam polecenia rpm -upgrade i zauważyłem, że rpm ma różne sposoby obsługi zmodyfikowanych plików konfiguracyjnych, więc nie gubi się podczas aktualizacji. Z tego co rozumiem, jeśli plik konfiguracyjny został zmodyfikowany, a pakiet został uaktualniony za pomocą rpm -U, rpm zmieni nazwę oryginalnego pliku właściwości jako {plik} .rpmsave i zainstaluje nowy plik konfiguracyjny o oryginalnej nazwie pliku {plik}.Obsługa aktualizacji plików konfiguracyjnych Rpm

Jednak, gdy próbuję uruchomić rpm -U z utworzonym przeze mnie pakietem, widzę, że oryginalny plik konfiguracyjny zostanie usunięty, a nowy plik konfiguracyjny zostanie zmieniony na {file} .rpmsave. Czy to jest zamierzone zachowanie? W moim skrypcie instalacyjnym modyfikuję również tekst w pliku konfiguracyjnym za pomocą "sed". Czy to mogło zakłócić sposób, w jaki rpm obsługuje pliki konfiguracyjne podczas aktualizacji?

+0

Co zrobiłeś dla polecenia sed? Zmodyfikuj plik rpmnew? – GrkEngineer

Odpowiedz

20

To jest zamierzone zachowanie. Jeśli chcesz, aby plik konfiguracyjny nigdy nie został nadpisany (i przeniesiony do .rpmsave), użyj %config(noreplace) zamiast %config w pliku rpm .spec, a plik nie zostanie zastąpiony. Zamiast tego, nowy plik z pakietu rpm zostanie utworzony jako .rpmnew, a ten, który zostanie tam sam.

+0

Czy istnieje sposób na zachowanie oryginalnego pliku lub czy muszę zmienić nazwę pliku .rpmnew z powrotem na oryginalną nazwę pliku, być może w instalacji% post? – user459811

+0

Przepraszam, jeśli nie byłem jasny; oryginalny plik pozostaje (nie jest zastępowany), a "nowy" plik konfiguracyjny z rpm zostaje utworzony jako .rpmnew. –