Capitolo 6. Come caricare e gestire i pacchetti personalizzati

A seconda del tipo di servizio Red Hat Network utilizzato, sono presenti due tipi di meccanismi per il caricamento dei pacchetti su canali privati.
Gli utenti del RHN Proxy Server utilizzano l'applicazione RHN Package Manager, la quale è in grado di inviare le informazioni presenti nell'intestazione del pacchetto ai server Red Hat Network centrali, posizionando il pacchetto stesso all'interno del repositorio locale del Proxy che ha invocato RHN Package Manager.
Gli utenti del RHN Satellite Server utilizzano l'applicazione RHN Push, la quale è in grado di inviare le informazioni presenti nell'intestazione del pacchetto ai server RHN Satellite Server centrali, posizionando il pacchetto stesso all'interno della repository locale del Satellite che ha invocato RHN Push.
Questo capitolo affronta entrambi questi tool in modo dettagliato.

Avvertimento

Se utilizzate sia RHN Proxy Server che RHN Satellite Server, utilizzate solo RHN Push. La combinazione Proxy-Satellite richiede il trasferimento dei pacchetti personalizzati e dei canali solo sul Satellite. Da li, i server Proxy sono in grado di ottenere i pacchetti e di distribuirli sui sistemi client.

6.1. Come caricare i pacchetti sul RHN Proxy Server

RHN Package Manager permette ad una organizzazione di servire i pacchetti personalizzati associati con un canale RHN privato attraverso il RHN Proxy Server. Se desiderate che il RHN Proxy Server serva solo i pacchetti Red Hat Enterprise Linux ufficiali, non sarà necessario installare RHN Package Manager.
Per poter utilizzare RHN Package Manager, installate il pacchetto RPM rhns-proxy-package-manager insieme alle relative dipendenze. Questo pacchetto è disponibile a tutti i sistemi RHN Proxy Server registrati, e viene installato eseguendo up2date rhns-proxy-package-manager.

Nota

Verranno trasferite sui server RHN solo le informazioni per i pacchetti presenti nell'intestazione. Le intestazioni sono necessarie poichè esse permettono a RHN di risolvere le dipendenze del pacchetto per i sistemi client. I file del pacchetto (*.rpm) vengono conservati sul RHN Proxy Server. Per questo motivo i pacchetti personalizzati non possono essere scaricati attraverso il sito web di RHN, anche se gli stessi sono presenti al suo interno. Essi possono essere ripristinati dal sistema client utilizzando up2date.

6.1.1. Configurazione ed utilizzo del RHN Package Manager

Prima di poter utilizzare RHN Package Manager per caricare i pacchetti all'interno di RHN, sarà necessario copiare manualmente i pacchetti sul server Proxy stesso. Per esempio, da un host di sviluppo è possibile utilizzare scp:
scp foo.rpm root@rhnproxy.example.com:/tmp
Quando si utilizza RHN Package Manager per caricare i pacchetti su Red Hat Network, indicate i file precedentemente copiati sul server.

Nota

Create almeno un canale privato in modo da ricevere i pacchetti personalizzati prima di eseguire il caricamento su Red Hat Network, i sistemi avranno bisogno del suddetto canale per ottenere i pacchetti.
Il seguente comando carica l'intestazione del pacchetto sui server RHN, copiando i pacchetti nella repository del RHN Proxy Server.
rhn_package_manager -c label_of_private_channelpkg-list
Il label_of_private_channel rappresenta il canale personalizzato creato per ricevere questi pacchetti. Assicuratevi di utilizzare l'etichetta esatta del canale specificato durante la sua creazione. Se avete specificato uno o più canali (utilizzando -c o --channel), le intestazioni caricate del pacchetto vengono collegate a tutti i canali identificati. Se non specificate alcun canale, i canali verranno depositati all'interno della sezione Nessun Canale della pagina Gestione Pacchetto. Per informazioni sul processo di riassegnazione dei pacchetti, consultate la Sezione 4.6, «Assegnazione dei pacchetti ai canali software».
Il riferimento pkg-list rappresenta l'elenco dei pacchetti da trasferire. È necessario prima aver copiato fisicamente i suddetti pacchetti sull'host del Proxy. Alternativamente utilizzate l'opzione -d per specificare la directory locale che contiene i pacchetti da aggiungere al canale. RHN Package Manager è in grado di leggere l'elenco dei pacchetti da un input standard (utilizzando --stdin).
È possibile specificare all'interno del file di configurazione altre opzioni, come ad esempio l'URL del server Red Hat Network, la password ed il nome utente del proxy HTTP (se il vostro proxy HTTP necessita di una autenticazione), e la directory superiore dove risiedono i pacchetti. Questa configurazione non deve essere modificata ed è disponibile in /etc/rhn/default/rhn_proxy_package_manager.conf. È possibile annullare le impostazioni presenti sul file di configurazione di default, con quelle presenti nel file di configurazione principale /etc/rhn/rhn.conf, oppure tramite le opzioni della linea di comando passate su RHN Package Manager.
I parametri che non sono stati impostati su questo file verranno letti dal .rhn_package_manager nella home directory dell'utente attualmente registrato, e per finire da /etc/rhn/rhn_package_manager.conf. Assicuratevi che tutti i suddetti file abbiano i permessi appropriati, in modo da impedire la loro lettura da parte di altri utenti.
Dopo aver caricato i pacchetti, controllate se la directory locale è sincronizzata con l'immagine del server di RHN dei canali:
rhn_package_manager -s -c name_of_private_channel
L'opzione -s elenca tutti i pacchetti mancanti, cioè tutti i pacchetti trasferiti sul server RHN ma non presenti sulla directory locale. È necessario essere un Organization Administrator per poter utilizzare questa opzione. L'applicazione vi richiederà di inserire la password ed in vostro nome utente di RHN.
L'opzione --copyonly copia il file presente nell'argomento all'interno del canale specificato, senza eseguire il caricamento sul Satellite. Tale processo è utile quando un canale presente su di un RHN Proxy Server, non contiene un determinato pacchetto e l'utente non desidera importare nuovamente tutti i pacchetti all'interno del canale.
rhn_package_manager -c channel-name --copyonly /path/to/missing/file
È possibile utilizzare RHN Package Manager per ripristinare l'elenco dei pacchetti in un canale, poichè essi vengono conservati dal server di RHN:
rhn_package_manager -l -c name_of_private_channel
L'opzione -l elenca il nome del pacchetto, il numero della versione, quello della release, l'architettura, ed il nome del canale per ogni pacchetto all'interno del canale specificato. Per informazioni sulle opzioni aggiuntive consultate la Tabella 6.1, «opzioni rhn_package_manager».
Tabella 6.1, «opzioni rhn_package_manager» è un sommario di tutte le opzioni della linea di comando per RHN Package Manager (rhn_package_manager):

Tabella 6.1. opzioni rhn_package_manager

Opzione Descrizione
-v, --verbose Aumenta la verbosità dei messaggi output standard.
-d, --dir DIRECTORY_NAME Processa i pacchetti da questa directory.
-c, --channel CHANNEL_NAME Specifica il canale che riceve i pacchetti. È possibile specificare canali multipli utilizzando istanze multiple di -c (es: -c channel_one -c channel_two)
-n, --count NUMBER Processa questo numero di intestazioni per chiamata — il default è 32.
-l, --list Elenca i pacchetti nel canale specificato.
-s, --sync Controlla se la directory locale è in sincronizzazione con il server.
-p, --printconf Stampa la configurazione attuale ed esce.
--newest Passa solo i pacchetti più recenti rispetto a quelli presenti sul server. Da notare che i pacchetti sorgente sono speciali in quanto le loro versioni non vengono mai confrontate tra di loro. La loro versione dipende dai loro pacchetti binari associati. Utilizzando questa opzione con RHN Package Manager e con un pacchetto sorgente, il pacchetto verrà caricato senza che il pacchetto sorgente appaia all'interno dell'interfaccia web di RHN, questo fino a quando il pacchetto binario associato è stato trasferito. Contrastate questo comportamento utilizzando --source. Utilizzando --source --newest insieme, verrà eseguito l'aggiornamento del pacchetto sorgente stand-alone con pacchetti più recenti, senza aver bisogno di trasferire prima un pacchetto binario associato.
--source Carica i pacchetti sorgente indicati. Facendo questo essi verranno trattati come pacchetti stand-alone semplici, e non come pacchetti sorgente speciali, associati con un altro pacchetto binario pre-esistente. Per esempio potete utilizzare questa opzione quando desiderate distribuire delle application source agli sviluppatori ed ai tester esterni alla gestione regolare del controllo della sorgente.
--stdin Legge i nomi del pacchetto da un input standard.
--nosig Non fallisce se i pacchetti non sono firmati.
--no-ssl Disabilita SSL (non consigliato).
--stdin Legge i nomi del pacchetto da un input standard.
--username USERNAME Specifica il nome utente di RHN. Se non è presente, vi verrà richiesto di fornire un nome utente di un Amministratore del canale valido.
--password PASSWORD Specifica la password di RHN. Se non è presente, vi verrà richiesto di fornire una password di un Amministratore del canale valido.
--dontcopy Nella fase di post-caricamento, non copia i pacchetti sulla loro posizione finale all'interno dell'albero dei pacchetti.
--copyonly Copia i pacchetti, non li re-importa.
--test Stampa solo un elenco dei pacchetti da passare.
-?, --help Mostra una schermata d'aiuto insieme ad un elenco di opzioni.
--usage Descrive brevemente le opzioni disponibili.
--copyonly Copia solo i pacchetti

Nota

Queste opzioni della linea di comando vengono anche descritte all'interno della pagina del manuale rhn_package_manager: man rhn_package_manager.