Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.4.6. Aggiornamenti al RPM Package Manager (RPM)

Red Hat Enterprise Linux 7 fornisce una versione aggiornata di RPM Package Manager. Questo aggiornamento include un certo numero di modifiche al comportamento che potrebbe interessare il processo di migrazione.
  • La rilevazione dei conflitti è ora più severa e corretta. Alcuni pacchetti installabili su Red Hat Enterprise Linux 6 potrebbero ora non essere più installati a causa di questa impostazione.
  • È ora possibile installare i pacchetti in conflitto, permettendo così all'utente di creare un comportamento singleton tra le alternative.
  • I pacchetti resi obsoleti da un pacchetto esistente e installato non vengono installati.
  • Regole obsolete includono ora tutti i pacchetti corrispondenti senza più considerare altri attributi come ad esempio l'architettura.
  • I calcoli per la dipendenza non considerano più i file non installati o i file sostituiti, per esempio usando le opzioni --nodocs, --noconfig o --force, come file disponibili.
  • Non è più necessario eseguire manualmente il comando rm -f /var/lib/rpm/__db. durante la compilazione di un database (DB_RUNRECOVER) RPM Package Manager nel quale si è verificato un panic.
  • Le chiavi pubbliche create con OpenPGP 3 non sono più supportate.
  • L'opzione --info ora esegue l'output delle coppie tag-valore per riga in modo da migliorare la lettura dell'utente. Qualsiasi script che si affida al formato --info precedente deve essere riscritto.
  • Il parser spec è ora più selettivo e corretto, per questo motivo alcuni file di spec accettati in precedenza, potrebbero non essere analizzati o fornire alcun avvertimento.
  • %license può essere usato per contrassegnare i file nella sezione %files di un file delle specifiche, come licenze da installare anche quando --nodocs è stato specificato.
  • Il confronto delle versioni supporta ora l'operatore dpkg-style tilde (~) per gestire meglio il software pre-release. Per esempio, foo-2.0~beta1 viene considerato più vecchio di foo-2.0, e rimuove la necessità di eseguire alcune operazioni con il campo Release per la gestione di queste situazioni relative alla versione common upstream.
  • Il generatore delle dipendenze automatico è stato riscritto in un sistema basato sulle regole personalizzabile ed estendibile con un filtro interno.
Questo aggiornamento include anche i seguenti miglioramenti:
  • Ora è possibile interrogare i file installati da un pacchetto (INSTFILENAMES), il numero di link fissi per un file (FILENLINKS), le informazioni del sistema di controllo della versione del pacchetto (VCS), e le scorciatoie per la stringa delle dipendenze formattate (PROVIDENEVRS, REQUIRENEVRS, CONFLICTNEVRS, OBSOLETENEVRS).
  • Vengono forniti un certo numero di nuovi comandi incluso:
    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • RPM Package Manager introduce ora nuovi interruttori per gli scriptlets per abilitare l'espansione della macro di runtime o l'espansione queryformat di runtime.
  • Le dipendenze scriptlet pre e post-transazione possono essere ora espresse in modo corretto con Requires(pretrans) e Requires(posttrans).
  • RPM Package Manager include ora il tag OrderWithRequires e permette agli utenti di fornire informazioni aggiuntive sull'ordine. Questo nuovo tag utilizza la stessa sintassi del tag Requires senza generare però alcuna dipendenza. Se indicato, i pacchetti sono presenti nella stessa transazione e i suggerimenti relativi all'ordine verranno trattati come Requires durante il calcolo dell'ordine di transazione.
  • Le espansioni della macro e le continuazioni di riga nei file delle specifiche non hanno più una lunghezza specifica.
  • RPM Package Manager permette ora agli utenti di specificare le informazioni sul repositorio per il controllo della versione upstream.
  • RPM Package Manager include ora una macro %autosetup pwe assistere nel processo di automazione per l'applicazione di patch.