Ho diverse applicazioni che desidero distribuire usando rpm. Alcuni dei file nelle distribuzioni dell'applicazione sovrascrivono i file di altri pacchetti distribuiti. Includere semplicemente i nuovi file nel pacchetto di distribuzione causerà conflitti di rpm.Come utilizzare rpm per aggiornare/sostituire i file esistenti?
Sto cercando il modo corretto di utilizzare rpm per aggiornare/sostituire i file già installati.
Ho già trovato alcune soluzioni, ma nulla sembra giusto.
- Mantenere versioni personalizzate degli rpms contenenti i file originali.
Questa sembra una grande quantità di lavoro per una ricompensa relativamente piccola, anche se sembra meno un compromesso rispetto ad alcune delle altre possibili soluzioni.
- Includi i file in rpm con un altro nome e copiali nella sezione dei post.
Ciò funzionerebbe ma significherebbe sporcare il sistema con più copie dei file. Significa anche una manutenzione aggiuntiva nella specifica di build rpm per ogni file.
- Utilizzare wget nella sezione post per sostituire i file originali da un server noto.
Questo è simile alla tecnica di copia, ma i file non potrebbero nemmeno vivere in rpm. Tuttavia, ciò potrebbe comportare una buona autorità di configurazione centrale.
- Distribuire i file come nuovi file, quindi utilizzare i collegamenti simbolici per sovrascrivere gli originali.
Questo è anche simile alla tecnica di copia ma con meno ingombro. Il problema qui è che alcuni file non si comportano bene come collegamenti simbolici.
Questo è un buon suggerimento, ma la funzione rpmnew/rpmsave si riferisce in realtà all'aggiornamento di un pacchetto esistente. Il problema che sto avendo riguarda l'aggiunta di un nuovo pacchetto che modifica i file già installati da un altro pacchetto. Grazie! – tremoloqui
L'aggiornamento dei file di un altro pacchetto non mi sembra molto sicuro. Perché dovresti avere problemi con i file di altri pacchetti, in primo luogo? – lothar
Esempio di esempio: il pacchetto perl-5.8.8 su CentOS contiene molte versioni precedenti di moduli CPAN, che non sarà possibile aggiornare tramite RPM perché i file del modulo aggiornati saranno in conflitto. Quindi sei bloccato con i vecchi moduli o ti ci fai strada. –