2013-01-24 17 views
19

Sto giocando con il comando rpm -upgrade e ho notato che rpm ha diversi modi di gestire i file di configurazione modificati in modo da non perdersi durante l'aggiornamento. Da quanto ho capito, se un file di configurazione è stato modificato e il pacchetto è aggiornato con rpm -U, rpm rinominerà il file delle proprietà originale come {file} .rpmsave e installerà il nuovo file di configurazione con il nome del file originale {file}.Gestione aggiornamento Rpm dei file di configurazione

Tuttavia, quando provo a eseguire rpm -U con il pacchetto che ho creato, quello che vedo è che il file di configurazione originale viene eliminato e il nuovo file di configurazione viene rinominato in {file} .rpmsave. È questo il comportamento previsto? Nel mio script di installazione modifica anche del testo nel file di configurazione con "sed". Ciò potrebbe interferire con il modo in cui rpm gestisce il file di configurazione durante un aggiornamento?

+0

Cosa hai fatto per il comando sed? Modifica il file rpmnew? – GrkEngineer

risposta

20

Questo è il comportamento previsto. Se si desidera che il file di configurazione non venga mai sovrascritto (e spostato in .rpmsave), utilizzare %config(noreplace) anziché %config nel file .spec di rpm e il file non verrà sostituito. Invece, il nuovo file dal pacchetto rpm verrà creato come .rpmnew, e quello lì sarà lasciato solo.

+0

C'è un modo per conservare il file originale o dovrei rinominare il file .rpmnew nel nome del file originale, magari in% post install? – user459811

+0

Scusate se non ero chiaro; il file originale rimane (non viene sostituito) e il "nuovo" file di configurazione dal rpm viene creato come .rpmnew. –