Inserisci Infobox

Aggiornamento di un sistema Linux

I metodi e le tecniche per l'upgrade manuale e automatico di un sistema Linux

Strumenti di aggiornamento del software su Linux
Autore: al - ( Revisione: al ) - Ultimo Aggiornamento: 2006-03-23 11:52:41 - Data di creazione: 2004-10-22 19:06:37
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

L'aggiornamento di un sistema operativo è un operazione fondamentale per la sua sicurezza, sia in ambito aziendale che domestico, sia su server che su desktop.
L'unica differenza sostanziale saranno i mezzi, le necessità e le modalità ma l'obbiettivo è comune: proteggere i propri sistemi aggiornandone il software regolarmente per eliminare possibili vie di intrusione tramite vulnerabilità note.
Esistono molteplici vie per eseguire l'update di sistemi Linux:
- utilizzare tool automatici o semi-automatici per il download e l'installazione di pacchetti rpm o deb,
- installare manualmente nuovi pacchetti binari per l'aggiornamento dei programmi installati,
- compilare i sorgenti con le patch del software da aggiornare.

L'uso di strumenti (semi)automatici, generalmente consigliabile quando si deve gestire un parco macchine considerevole, può basarsi su mirror distribuiti nel mondo o su un servizio, generalmente a pagamento, offerto dal produttore della distribuzione che si usa.
Ogni distribuzione Linux ha i propri metodi preferenziali per l'aggiornamento del software.

REDHAT
La versione commerciale di RedHat (Enterprise edition) si aggiorna tramite il RedHat Network (RHN) che permette di gestire e aggiornare facilmente anche via Web una moltitudine di sistemi. up2date, utilizzabile sia via command line che tramite interfaccia grafica, è il programma utilizzato per aggiornarsi tramite RHN.
Fedora, la distribuzione free di RedHat, aperta alla community, si aggiorna tramite yum (tool di aggiornamento derivato da Yellow Dog Linux) che si appoggia a svariti mirror worldwide.
Sono disponibili, ma non inclusi dei CD ufficiali, altri strumenti di aggiornamento come autorpm o la versione per rpm di apt.

DEBIAN
I pacchetti .dep di Debian vengono gestiti e aggiornati tramite il potente apt che appoggiandosi ad un elenco di mirror distribuiti permette di scaricare e aggiornare software sia del ramo "stable" che quello "testing". Con il comando apt-get di fatto si gestisce ogni attività.

MANDRIVA
L'aggiornamento e la gestione dei pacchetti rpm avviene tramite l'interfaccia grafica rpmdrake o il tool testuale urpmi. Entrambi si appoggiano a dei mirror configurabili e sono presenti di default sul sistema.

NOVELL - SUSE
Tramite il tool grafico di configurazione Yast2, strettamente integrato in ogni distribuzione Suse, è possibile gestire e automatizzare gli aggiornamenti dai mirror selezionati.

SLACKWARE
I pacchetti tgz di Slackware possono essere aggiornati dai mirror ufficiali tramite tool come swaret e slapt-get, che vanno scaricate a parte.

GENTOO
E' fortemente radicato nel sistema di gestione dei portage di Gentoo l'aggiornamento (tramite scaricamento dei sorgenti e ricompilazione automatica degli stessi) e l'installazione del software. Il comando emerge provvede a tutto.

Patching dei Sorgenti
Tramite utility come patch o diff, o semplicemente ricompilando i sorgenti presenti nel tar.gz (./configure ; make ; make install), è possibile applicare o creare patch (file contenenti modifiche da apportare ai file originari) al software installato sul sistema senza l'utilizzo di pacchetti. Questa operazione viene eseguita principalmente quando si lavora direttamente dai sorgenti, ricompilandoli una volta applicata la patch e può applicarsi a qualsiasi distribuzione.
Non essendo legata ad uno specifico sistema di packaging, va fatta manualmente.

RedHat Network (RHN)
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2003-05-05 23:08:20 - Data di creazione: 2003-05-05 23:08:20
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

RedHat Network è nata per gestire con più facilità gli aggiornamenti software di uno o più sistemi RedHat, anche di vecchia data.
La sua prima comparsa risale nella distribuzione RedHat 6.0, tramite l'utility up2date.

Attualmente oltre all'utility testuale up2date si ha disposizione una GUI (interfaccia grafica) e un demone (RHNSD) che si occupa di gestire in via del tutto automatica i check periodici per gli upgrade.
Il principio su cui si basa RHN è molto semplice, di fatto RedHat mette a disposizione dei repository da cui poter scaricare gli aggiornamenti tramite un client specifico, up2date.
Questo client si occupa di scaricare gli aggiornamenti in modo "intelligente", ovvero facendo ricerche incrociate per downlodare solo i RPM necessari.
Da sottolineare che lo scambio dei dati fra client e server RHN viene effettuato tramite il protocollo SSL e che sui pacchetti scaricati vengono fatti controlli di integrità attraverso il checksum GPG per evitare spiacevoli problemi di intercettazione dati e malformazione dei pacchetti.
Inoltre l'utility è estremamente flessibile poichè da la possibilità al sistem administrator di configurare molteplici opzioni, come ad esempio la possibilità di creare liste di rpm che non dovranno mai essere aggiornati oppure la creazione di più utenti per la gestione dei singoli canali (Es RedHat 8.0 i386 e RedHat 6.2 sparc sono due canali diversi) con permessi differenti, oppure decidere semplicemente di downlodare e non installere gli upgrade.

Esistono anche soluzioni per ottimizzare e velocizzare tutte le procedure di automatizzazione dell'upgrade di più sistemi come:

RHN proxy
RHN proxy, come si può intendere dal nome stesso è un sistema che permette di usufruire del servizio RHN tramite un proxy, il quale avrà il compito di scaricare e mettere in cache tutti gli aggiornamenti necessari per i sistemi della propria network. Il vantaggio risiede nella riduzione del traffico (Es. l'aggiornamento del RPM del kernel viene scaricato una volta, salvato sul proxy ma utilizzato da tutti i sistemi che lo richiedono) oltre alla possibilità di propagare rpm personalizzati o che non sono stati rilasciati ufficialmente dallo staff di RedHat.

RHN Satellite
RHN Satellite, oltre a tutti i vantaggi di RHN Proxy, permette di avere nella propria network un vero e proprio server RHN con tutti i vantaggi del caso.
Per usufruire di questa possibilità vengono richiesti sforzi maggiori per quanto riguarda i requisiti di sistema (ES: Installazione di Oracle e di RedHat Advanced Server).
Anche in questo caso si ha la possibilità di configurare nei minimi dettagli tutte le singole opzioni oltre che utilizzare questo sistema anche come server kickstart per effettuare installazioni personalizzate direttamente via rete.
Questa soluzione risulta essere vantaggiosa solo in caso di reti aziendali molto grosse, nell'ordine di 1000 host e più.

Aggiornamento di Red Hat via command line
Autore: neo - Ultimo Aggiornamento: 2003-05-06 17:16:03 - Data di creazione: 2003-05-06 17:16:03
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

Attualmente sono disponibili due modalità differenti per usufruire del servizio RHN (Red Hat Network) con cui si può aggiornare il proprio Red Hat Linux:
- Command line
- GUI
Le modalità e le opzioni configurabili sono le medesime cambia solo l'ambiente e la modalità con cui si eseguono alcune operazioni, le operazioni di fondo e le operazioni sul sistema risultano identiche.
Di seguito è riportato un mini How-To sull'uso di up2date, l'agent per accedere RHN tramite la command line.

Configurazione
Nel caso in cui sia la prima volta che venga attivato l'agent up2date viene visualizzata una schermata che permette di modificare tramite un menu testuale tutte le opzioni che verranno salvate nel file di configurazione /etc/sysconfig/rhn/up2date.
Per richiamare il medesimo menu in un secondo tempo, lanciare il comando up2date-config oppure up2date --nox --config
Lancio dell'utility up2date, nel caso in cui le opzioni vadano bene premere enter altrimenti è possibile modificare le singole opzioni, inserendo il numero dell'opzione da modificare e in un secondo momento inserire il nuovo lavoro.
[root@ns root]# up2date
0.  debug              No                                                      
1.  isatty             Yes                                                      
2.  depslist           []                                                      
3.  retrieveOnly       No                                                      
4.  enableRollbacks    No                                                      
5.  pkgSkipList        ['kernel*']                                              
6.  storageDir         /var/spool/up2date                                      
7.  adminAddress       ['root@localhost']                                      
8.  noBootLoader       No                                                      
9.  serverURL          https://xmlrpc.rhn.redhat.com/XMLRPC                    
10. fileSkipList       []                                                      
11. sslCACert          /usr/share/rhn/RHNS-CA-CERT                              
12. noReplaceConfig    Yes                                                      
13. useNoSSLForPackage No                                                      
14. systemIdPath       /etc/sysconfig/rhn/systemid                              
15. enableProxyAuth    No                                                      
16. retrieveSource     No                                                      
17. versionOverride                                                            
18. headerFetchCount   10                                                      
19. networkRetries     5                                                        
20. enableProxy        No                                                      
21. proxyPassword                                                              
22. noSSLServerURL     http://xmlrpc.rhn.redhat.com/XMLRPC                      
23. keepAfterInstall   No                                                      
24. proxyUser                                                                  
25. removeSkipList     ['kernel*']                                              
26. useGPG             Yes                                                      
27. gpgKeyRing         /etc/sysconfig/rhn/up2date-keyring.gpg                  
28. httpProxy                                                                  
29. headerCacheSize    40                                                      
30. forceInstall       No
Esempio di modifica di una opzione
0.  debug              No    
[...]
29. httpProxy                                                                  
30. headerCacheSize    40                                                      
31. forceInstall       No                                                      
Enter number of item to edit return to exit, q to quit without saving>: 0
Attribute Name: debug
Comment: Whether or not debugging is enabled
Current value: No
New Value: Yes

Nel caso in cui venga abilitato il check tramite GPG verrà richiesto di importare la chiave pubblica di RedHat Inc.
[...]
Your GPG keyring does not contain the Red Hat, Inc. public key.
Without it, you will be unable to verify that packages Update Agent downloads
are securely signed by Red Hat.

Your Update Agent options specify that you want to use GPG.

To install the key, run the following as root:
    rpm --import /usr/share/rhn/RPM-GPG-KEY
[root@ns root]#  rpm --import /usr/share/rhn/RPM-GPG-KEY


Registrazione
Eseguita la configurazione, occorre registrarsi attraverso la creazione di un account (username, password, etc..) che verrà utilizzato dal sistema per connettersi ai server RHN o dal system administrator per gestire i profili (Lista RPM, architettura, release, etc... ) degli host da amministrare.
La procedura di creazione dell'account e del profilo del server è gestita tramite una pseudo-GUI simile a quella che si ritrova durante l'installazione testuale.
Considerare che anche se l'accesso a RHN è gratuito per un singolo sistema, se si vuole essere certi di scaricare in ogni momento i propri aggiornamenti è opportuno acquistare il servizio RedHat Update dal sito RedHat.



Esempi di uso dell'utility up2date

Visualizzazione dei RPM scaricabili
[root@GIOVE root]# up2date --showall
[...]
xsane-0.84-8
xsane-gimp-0.84-8
xscreensaver-4.05-6
xsnow-1.42-8
[...]
Verifica del canale utilizzato
[root@GIOVE root]# up2date --show-channels
Lista degli RPM da aggiornare
[root@GIOVE root]# up2date --list

Fetching package list for channel: redhat-linux-i386-8.0...
########################################

Fetching Obsoletes list for channel: redhat-linux-i386-8.0...
########################################

Fetching rpm headers...

Name                                    Version        Rel    
----------------------------------------------------------

The following Packages were marked to be skipped by your configuration:

Name                                    Version        Rel  Reason
-------------------------------------------------------------------------------
kernel                                  2.4.18         26.8.0Pkg name/pattern
kernel-source                           2.4.18         26.8.0Pkg name/pattern

None of the packages you requested were found, or they are already updated.

Purtroppo a volte ci sono degli inconvenienti:
[root@GIOVE root]# up2date --showall
IMPORTANT MESSAGE FOLLOWS:
We are upgrading our service capabilities. Full service will be restored
within 1 hour.

We apologize for any inconvenience this outage may cause.
Thank you for using Red Hat Network.
--the RHN team

up2date
Autore: neo - ( Revisione: al ) - Ultimo Aggiornamento: 2003-04-19 18:45:02 - Data di creazione: 2003-04-19 18:45:02
Tipo Infobox: COMMANDS - Skill: 3- INTERMEDIATE

up2date è l'utility testuale che permette di usufruire del servizio RedHat Network per aggiornare gli RPM del sistema.

up2date [opzioni] [nome RPM]
up2date-nox  [opzioni] [nome RPM]
up2date-config [opzioni] [nome RPM]

Opzioni:
--configure Abilita la modalità configurazione, attraverso un menu in shell. (update-config)
-d, --download Esegue il download dei RPM ma non li installa.
-f, --force Forza l'installazione dei RPM.
-i, --install Installa tutti gli RPM scaricati.
-k, --packagedir Specifica la direcory che funge da repository di RPM, per evitare di scaricare più volte lo stesso package.
--nosig Evita il check con gpg dei singoli rpm.
--tmpdir=directory Specifica la directory temporanea. Default /var/spool/up2date.
--justdb Non installa gli RPM sul sistema, ma li aggiunge nel db di RPM.
--dbpath=dir Specifica il path del db di RPM.
-l, --list Mostra l'elenco dei vari RPM disponibili.
--showall Mostra l'elenco di tutti gli RPM scaricabili.
--undo Esegue l'undo dell'ultimo update.
-u, --update Esegue l'update di tutti i RPM disponibili.
--register Registra il server al servizio RHN.
--show-channels Visualizza i canali disponibili.

Paths utili (RedHat):
/var/spool/up2date - Directory in cui vengono scaricati gli rpm.
/etc/sysconfig/rhn/up2date - Il file di configurazione principale.
/etc/sysconfig/rhn/up2date-uuid - Il codice unico che identifica il proprio sistema su RHN

Creazione di un repository di RPM per Fedora 3
Autore: al - Ultimo Aggiornamento: 2005-04-26 16:49:38 - Data di creazione: 2005-02-10 17:08:42
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

La procedura per la creazione di un repository di RPM (usando i CD ufficiali e un mirror degli update) è simile a quella utilizzabile per un repository di Fedora2.
Prevede diverse fasi:
1- Installazione del software necessario per creare un repository (createrepo) ed esportarlo via Web (apache)
2- Creazione di uno script che esegua il mirror degli rpm da un sito ufficiale su una directory locale e che provveda a ricreare, ogni volta, gli indici dei pacchetti presente nel repository (repodata);
3- Mount in loopback sul sistema delle iso dei CD ufficiali e creazione, una tantum, dei repodata
4- Configurazione di apache per esportare tutto via web
5 (Sui Client) - Configurazione di yum per scaricare i pacchetti dal proprio repositoy locale.

1 - Installazione software
Per creare un proprio repository essenzialmente basta il pacchetto createrepo, per condivederlo via web basta Apache e per usare lo script sotto riportato per sincronizzare il proprio sistema con un mirror ufficiale, è necessario rsync:
yum install createrepo
yum install apache
yum install rsync

E' probabile che sul proprio sistema siano già installati sia Apache che Rsync.

2 - Script di sincronizzazione e creazione repository
Il seguente script scarica via rete, dall'url definito in REMOTE_UPDATES i pacchetti di tipo rpm (sono esclusi pacchetti di sorgenti, di debug o per sistemi non i386, per evitare tempi di download eccessivi) e li copia della directory locale definita in LOCAL.
Dopo il download (eseguito tramite rsync) viene eseguito in comando createrepo passandogli come argomento la directory in cui si trova la directory packages contenenti gli rpm. Allo stesso livello di questa directory viene creata la directory repodata con tutti i metadati necessari a yum.
Notare che rispetto a Fedora 2, qui c'è una sostanziale differenza: i metadati vengono creati con l'utility createrepo (più veloce) invece dell'ormai superato yum-arch.
Notare altresì che questo script, oltre a scaricare gli update, fa anche il mirror di due interessanti repository con RPM aggiuntivi (extra e livna).

#!/bin/sh
#### FEDORA 3 ######

## DEFINE LOCAL DIRECTORY
LOCAL=/distro/fedora3/

## DEFINE OFFICIAL FEDORA UPDATES MIRROR
REMOTE_UPDATES=rsync://ftp.join.uni-muenster.de/fedora-linux-core

## DEFINE FEDORA.US EXTRAS MIRROR
REMOTE_EXTRA=rsync://mirrors.kernel.org/fedora.us/fedora
# REMOTE_EXTRA=rsync://ftp-stud.fht-esslingen.de/fedora
# REMOTE_EXTRA=rsync://sunsite.mff.cuni.cz/fedora.us

## DEFINE LIVNA MIRROR
REMOTE_LIVNA=rsync://rpm.livna.org/rlo/fedora

# Fedora 3 Updates (RPM i386)
/usr/bin/rsync --ignore-existing -v $REMOTE_UPDATES/updates/3/i386/*.rpm $LOCAL/updates/packages/
/usr/bin/createrepo $LOCAL/updates

## Optional extra RPM packages repositories

## Fedora 3 Extras
#/usr/bin/rsync --ignore-existing -av $REMOTE_EXTRA/fedora/3/i386/RPMS.extras/*.rpm $LOCAL/extras/packages/
#/usr/bin/createrepo $LOCAL/extras

## Fedora 3 Livna
#/usr/bin/rsync --ignore-existing -v $REMOTE_LIVNA/3/i386/RPMS.stable/*.rpm $LOCAL/livna/packages/
#/usr/bin/createrepo $LOCAL/livna


3- Creazione repository per i pacchetti dei CD  
Per quanto riguarda il contenuto dei CD ufficiali di Fedora, uno dei metodi più rapidi ed efficaci è di montare in loop le rispettive iso e creare gli indici (visto che i pacchetti sono sempre gli stessi, i repodata vengono generati una volta soltanto.
Nel nostro esempio abbiamo le iso nella directory /distro/iso e vogliamo montarle nelle directory /distro/fedora3/cd/disc1, disc2 ecc.
Creazione delle directory su cui montare ed "esplodere" il contenuto delle iso.
E' molto importante chiamare le directory in questo modo (disc1, disc2, disc3 e disc4) per poter gestire anche installazioni centralizzate via rete:
mkdir -p /distro/fedora3/cd/disc1
mkdir -p /distro/fedora3/cd/disc2
mkdir -p /distro/fedora3/cd/disc3
mkdir -p /distro/fedora3/cd/disc4

Mount in loop delle iso (che vanno ovviamente copiate precedentemente in /distro/iso/ o directory analoga):
mount -t auto -o loop /distro/iso/FC3-i386-disc1.iso /distro/fedora3/cd/disc1
mount -t auto -o loop /distro/iso/FC3-i386-disc2.iso /distro/fedora3/cd/disc2
mount -t auto -o loop /distro/iso/FC3-i386-disc3.iso /distro/fedora3/cd/disc3
mount -t auto -o loop /distro/iso/FC3-i386-disc4.iso /distro/fedora3/cd/disc4

Creazione del repository:
createrepo /distro/fedora3/cd/
Questo comando crea la directory /distro/fedora3/main/repodata/con tutti i metadati relativi ai pacchetti contenuti nei CD (nelle directory incluse in main).

4- Configurazione di Apache
Esportare via web i pacchetti rpm e i metadati è necessario sia per eventuali installazioni via rete che per gli aggiornamenti tramite yum dei client.
Fermo restando che nomi delle directory, path e indirizzi possono essere variati secondo i propri sistemi possiamo configurare in modo semplice Apache creando un file di configurazione, chiamato, per esempio, /etc/httpd/conf.d/yumrepository.conf con simili contenuti (accesso da qualsiasi IP e possibilità di browsing delle directory):
Alias distro /distro

Options + Indexes
AllowOverride None
Order allow,deny
Allow from all

In questo modo, ipotizzando che il nostro server abbia IP 10.42.42.1, all'URL http://10.42.42.1/distro/ troveremo i contenuti della directory /distro locale, in cui esiste una sottodirectory iso, con le iso dei CD, e la sottodirectory fedora3 con i vari pacchetti e i relativi metadati.

5- Configurazione dei client
A questo punto la configurazione del server centrale con le funzioni di repository è completa. Possiamo procedere alla configurazione dei client, cioè dei sistemi (desktop o server che siano) che useranno questo repository locale (accessibili a velocità da LAN) per tutte le operazioni di installazione e aggiornamento dei pacchetti RPM.

Su ogni host su cui si è installato Fedora 3 (o in genere ogni sistema RedHat o basato su RPM) è opportuno importare le chiavi pubbliche GPG con cui sono stati firmati i pacchetti ufficiali. Questo permette di forzare l'aggiornamento e l'installazione solo dei pacchetti di cui la fonte è certa e validata.
Per farlo, su Fedora3, scrivere:
rpm --import /usr/share/doc/fedora-release-3/RPM-GPG-KEY
(questa è la chiave GPG con cui sono firmati tutti i pacchetti degli aggiornamenti) e:
rpm --import /usr/share/doc/fedora-release-3/RPM-GPG-KEY-fedora
(la chiave con cui sono firmati i pacchetti di base presenti nei CD ufficiali).

Notare che questa attività va fatta anche su un sistema Fedora che si vuole aggiornare normalmente via Internet, senza usare un repository locale, in quanto, di default, nessuna chiave GPG è importata e viene automaticamente impostato l'obbligo di fare un check della presenza della firma GPG (opzione gpgcheck=1 allinterno del file di configurazione /etc/yum.conf e dei singoli file di configurazione dei repository)

Il passo successivo, e l'ultimo per avere l'infrastruttura di aggiornamento centralizzata, è quello di modificare gli URL da cui il sistema preleva i suoi rpm.
Modificare il file /etc/yum.repos.d/fedora.repo (relativo al repository base, con gli rpm presenti nei cd ufficiali) in qualcosa tipo:
[base]
name=Fedora Core $releasever - $basearch - Base
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
# mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
baseurl=http://10.42.42.1/distro/fedora3/cd/
enabled=1
gpgcheck=1

In pratica si sono solamente commentate le righe esistenti (meglio commentarle che cancellarle, potrebbero essere utili in caso di problemi con il repository locale) e si è aggiunta la righa che punta al proprio server (ovviamente l'IP 10.42.42.1 e il path possono cambiare).

Analogamente, per il file /etc/yum.repos.d/fedora-updates.repo (relativo agli aggiornamenti ufficiali) scrivere:
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
#mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever
baseurl=http://10.42.42.1/distro/fedora3/updates/
enabled=1
gpgcheck=1


Gestione repository aggiuntivi
Oltre ai repository ufficiali (base e updates) è possibile aggiungere al proprio sistema uno o più dei molteplici repository di pacchetti rpm per software aggiuntivo, che estendono considerevolmente la facilità di installazione di pacchetti interessanti o utili che non sono presenti nel CD ufficiale.
Nello script sopra riportato sono presenti, commentate, delle righe per eseguire il mirror e la creazione dei metadati, per i repository Extras (pacchetti RPM extra, semi-ufficiali, gestiti dalla community e ospitati da RedHat) e Livna (altri pacchetti, basati e con dipendenze da quelli Extra, particolarmente interessanti).
Per includere anche questi repository, oltre a scommentare le righe dello script di mirror e a creare le directory utilizzate sul server, sui client vanno creati file come: /etc/yum.repos.d/extras.repo contentente:
[extras]
name=Fedora Core $releasever - $basearch - Extra
baseurl=http://10.42.42.1/distro/fedora3/extras/
enabled=1
gpgcheck=1


E il file /etc/yum.repos.d/livna.repo con:
[livna]
name=Fedora Core $releasever - $basearch - Livna
baseurl=http://10.42.42.1/distro/fedora3/livna/
enabled=1
gpgcheck=1


Ricordarsi che anche per questi due repository vanno importate le chiavi GPG:
rpm --import http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY-i386

Import delle chiavi GPG per installare i pacchetti rpm
Autore: neo - Ultimo Aggiornamento: 2005-05-06 11:53:22 - Data di creazione: 2003-07-29 17:07:23
Tipo Infobox: TIPS - Skill: 4- ADVANCED

I pacchetti rpm che venongo distribuiti da chi produce una distribuzione o da chi gestisce repository alternativi, sono quasi sermpre "firmati" con una chiave GPG che certifica l'autore del pacchetto, assicurandone la fonte.
E' bene, al termine di una installazione Linux, importare le chiavi pubbliche (rpm --import) dei packager che forniscono gli aggiornamenti o i pacchetti che si intendono utilizzare. Questa operazione potrebbe rendersi indispensabile quando si utilizzano tool di aggiornamento automatici come yum o autorpm se sono configurati per eseguire il gpgcheck dei pacchetti da aggiornare.

Se si prova ad installare un pacchetto creato da un packager di cui non si è importata la chiave GPG pubblica si ottiene un output di questo genere:
[root@zoe root]# rpm -Uhv httpd-2.0.40-21.3.i386.rpm
warning: httpd-2.0.40-21.3.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...                ########################################### [100%]
   1:httpd                  ########################################### [100%]


Le chiavi GPG pubbliche sono comunemente rintracciabili nella directory principale del primo CD di installazione o in /usr/share/doc/, ad esempio su Fedora in /usr/share/doc/fedora-release-XX/RPM-GPG-KEY:
[root@zoe root]# rpm --import /usr/share/doc/fedora-release-2/RPM-GPG-KEY
[root@zoe root]# rpm -Uhv httpd-manual-2.0.40-21.3.i386.rpm
Preparing...                ########################################### [100%]
   1:httpd-manual           ########################################### [100%]

apt-get
Autore: neo - Ultimo Aggiornamento: 2003-03-14 22:34:23 - Data di creazione: 2003-03-14 22:34:23
Tipo Infobox: COMMANDS - Skill: 4- ADVANCED

Utility per la gestione dei package di un sistema tramite command line.

apt-get [opzioni] comando
apt-get [options] install|remove pkg1 [pkg2 ...]
apt-get [options] source pkg1 [pkg2 ...]


Comandi:
update Scarica la nuova package list
upgrade Esegue l'upgrade dei package
install Installa un nuovo pacchetto
remove Rimuove un pacchetto
source Scarica i sorgenti del pacchetto specificato
build-dep Configura le build dependency
clean Cancella tutti  i vecchi file
autoclean - Cancella i vecchi file scaricati e archiviti
check - Verifica che tutte le dependency siano presenti

Opzioni:
-qq Abilita il quiet mode, visualizza solo gli errori (utile in script schedulati)
-d I package vengono solo scaricati e non installati
-y Risponde Yes in modo automatico a tutte le domande presentate (utile in script schedulati)
-D Abilita la rimozione di un package con tutte le sue dipendenze
-c=? Specifica la lettura di un file do configurazione
-o=? Permette di settare alcune opzioni specifiche

apt-cache
Autore: neo - Ultimo Aggiornamento: 2003-03-14 22:30:25 - Data di creazione: 2003-03-14 22:30:25
Tipo Infobox: COMMANDS - Skill: 4- ADVANCED

Utility di APT per la gestione della cache di supporto.

apt-cache [opzioni] comando
apt-cache [opzioni] add file1 [file2 ...]
apt-cache [opzioni] showpkg pkg1 [pkg2 ...]
apt-cache [opzioni] showsrc pkg1 [pkg2 ...]


Comandi:
add  Aggiunge un pacchetto alla cache
showpkg  Visualizza informazioni generali di un singolo pacchetto (versione,dipendenze etc..)
showsrc  Visualizza i sources record (descrizione, mantainer del package etc.. )
stats  Visualizza alcune statistiche
dump  Mostra il contenuto della cache
search  Abilita la ricerca di un package per il nome
show  Mostra tutto il contenuto di un package
depends  Visualizza le dipendenze di un package
pkgnames  Visualizza l'elenco di tutti i package scaricabili

Opzioni:
-p=? Specifica il file per salvare la cache dei package.
-s=? Specifica il file per salvare la source cache.
-q   Abilita il quiet mode.
-c=? Specifica quale file di configurazione utilizzare.
-o=? Permette di settare un opzione.

Swaret: slackware è servita
Autore: mozako - Ultimo Aggiornamento: 2005-03-25 10:23:25 - Data di creazione: 2005-03-23 10:14:21
Tipo Infobox: DISTRO - Skill: 3- INTERMEDIATE

Swaret è il tool automatizzato per la gestione dei pacchetti della distribuzione GNU/Linux Slackware.
Tramite la sua semplicissima sintassi permette di installare/aggiornare pacchetti in maniera molto semplice ed efficace: vediamo come installarlo.

Puntiamo il nostro browser al sito http://swaret.sourceforge.net e scarichiamo l'ultima versione disponibile.
Installiamo quest'ultima con il classico comando:
# installpkg swaret-1.6.2-noarch-1.tgz

Installato il software è giunto il momento di editare il file di configurazione:
# pico /etc/swaret.conf

Il file di configurazione si presenta in questo modo:
############################################################
#
# swaret.conf, Version: 1.6.2
#
### /etc/swaret.conf - SWARET EXAMPLE CONFIGURATION FILE ###
#
# Define a valid Slackware Linux Version.
# (Used for Dependency Support and other Features)
#
# NOTE: If you want to use Slackware Linux Current,
#       set VERSION to 'current' (VERSION=current).
#
VERSION=
#
# Define the language for status and error messages
LANGUAGE=
#
# ----------------------------------------------------------
# Define Slackware (8.1 or Higher or Current) Linux Mirrors.
# (Used for Official Slackware Linux Packages)
# (Slackware Linux Mirrors available at http://www.slackware.com)
#
# Syntax: ROOT=PROTOCOL:URL
#
# NOTE: swaret will use the order of the specified ROOT URL's.
#                 [........etc..........]


Le uniche cose che ci interessano sono VERSION e LANGUAGE.
In VERSION scriviamo current (in maniera da tenere la nostra distro aggiornata a slackware-current) ed in LANGUAGE digitiamo ITALIANO.
Fatto questo lanciamo il comando swaret --update:
# swaret --update
swaret 1.6.2-1
[ ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current ]
### Scarico il File CHECKSUMS... FATTO!
FILELIST List File is up-to-date!
Packages Descriptions up-to-date!
Extra Packages Descriptions up-to-date!
ChangeLog up-to-date!


Swaret è configurato e perfettamente funzionante, segue la lista dei comandi:
Per installare/aggiornare un software:
# swaret --install _nome_software_

Per eliminare un software:
# swaret --remove _nome_software_

Per aggiornare l'intera distribuzione:
# swaret --upgrade

Per aggiornare la lista dei pacchetti:
# swaret --update

Specificare l'architettura a mano in Autorpm
Autore: maxgrante - Ultimo Aggiornamento: 2003-08-04 20:01:03 - Data di creazione: 2003-08-04 20:01:03
Tipo Infobox: TIPS - Skill: 2- JUNIOR

Per un miglior funzionamento di autorpm, nel caso ci siano problemi nel normale funzionamento con i file di conf di defualt, può essere utile specificare in diversi file di configurazione l'architettura per cui il pacchetto RPM è stato creato.

Dopo essersi spostati in /etc/autorpm.d/ copiare il file redhat-updates.conf con i seguenti comandi:
cp redhat-updates.conf addons/redhat-updates.i386.conf
cp redhat-updates.conf addons/redhat-updates.i586.conf
cp redhat-updates.conf addons/redhat-updates.i686.conf


Editare l'originale e nel punto in cui c'è la seguente linea modificarla in questo modo:
Regex_Dir_Accept("noarch");
Eseguire la stessa procedura per i nuovi file denominati i386 ecc... inserendo al posto di "noarch" "i386" e via discorrendo.

A questo punto eseguire, su RedHat:
rpm --import /usr/share/doc/redhat-release-9/RPM-GPG-KEY
Questo permette di evitare i warning sul controllo GPG sull'origine dei pacchetti da aggiornare.

A questo punto autorpm lanciato in modalità auto eseguire download e installazione automatica dei pacchetti.

apt-get -f install
Autore: neo - Ultimo Aggiornamento: 2003-03-14 22:37:29 - Data di creazione: 2003-03-14 22:37:29
Tipo Infobox: BOFH - Skill: 3- INTERMEDIATE

Comando per risolvere tutte le dipendenze di un sistema.

[root@pluto apt]# apt-get -f install
Reading Package Lists... Done
Collecting File Provides... Done
Building Dependency Tree... Done
Correcting dependencies... Done
The following extra packages will be installed:
  glibc-devel gtk2 libglade2 pygtk2 pygtk2-libglade
The following NEW packages will be installed:
  glibc-devel gtk2 libglade2 pygtk2 pygtk2-libglade
0 packages upgraded, 5 newly installed, 0 removed and 26 not upgraded.
Need to get 6323kB of archives. After unpacking 16.5MB will be used.
Do you want to continue? [Y/n] yes
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/os glibc-devel 2.2.93-5 [2264kB]
Get:2 http://apt.freshrpms.net redhat/8.0/en/i386/os gtk2 2.0.6-8 [2573kB]                                                                
Get:3 http://apt.freshrpms.net redhat/8.0/en/i386/os libglade2 2.0.0-2 [93.9kB]                                                            
Get:4 http://apt.freshrpms.net redhat/8.0/en/i386/os pygtk2 1.99.12-7 [1250kB]                                                            
Get:5 http://apt.freshrpms.net redhat/8.0/en/i386/os pygtk2-libglade 1.99.12-7 [142kB]                                                    
Fetched 6323kB in 3m4s (34.3kB/s)                                                                                                          
Executing RPM (-Uvh)...
Preparing...                ########################################### [100%]
   1:glibc-devel            ########################################### [ 20%]
   2:gtk2                   ########################################### [ 40%]
   3:libglade2              ########################################### [ 60%]
   4:pygtk2                 ########################################### [ 80%]
   5:pygtk2-libglade        ########################################### [100%]

APT: Installazione e uso
Autore: neo - Ultimo Aggiornamento: 2003-03-17 12:29:45 - Data di creazione: 2003-03-17 12:29:45
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

APT (Advanced Packaging Tool) è un tool che permette di eseguire operazioni avanzate sulla gestione dei package da installare, upgradare o da rimuovere.
Nato dal team di Debian, viene installato di default nella suddetta distribuzione ma può essere utilizzato anche in altre distribuzioni come RedHat tramite un porting di nome apt-rpm.

Le differenze fra APT adottato dalle distribuzioni rpm compatibili e quello originale di Debian per i pacchetti .deb sono minime ed in entrambi i casi risulta essere una valida alternativa a tools come rpmfind o up2date per l'handling dei package di un sistema.
Di seguito è riportato un mini how-to sull'uso di apt con un confronto fra la distribuzione originale e il porting:

Installazione
REDHAT:
Installazione  da RPM per RedHat...
[root@pluto root]# rpm -ihv apt-0.5.4cnc9-fr1.i386.rpm
warning: apt-0.5.4cnc9-fr1.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
Preparing...                ########################################### [100%]
   1:apt                    ########################################### [100%]
[root@pluto root]# rpm -ihv apt-devel-0.5.4cnc9-fr1.i386.rpm
warning: apt-devel-0.5.4cnc9-fr1.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
Preparing...                ########################################### [100%]
   1:apt-devel              ########################################### [100%]

[root@pluto root]# rpm -qil apt
[...]
File di configurazione
/etc/apt
/etc/apt/apt.conf
/etc/apt/preferences
/etc/apt/rpmpriorities
/etc/apt/sources.list
/etc/apt/vendors.list
Binari
/usr/bin/apt-cache
/usr/bin/apt-cdrom
/usr/bin/apt-config
/usr/bin/apt-extracttemplates
/usr/bin/apt-get
/usr/bin/apt-sortpkgs
/usr/bin/genbasedir
/usr/bin/genpkglist
/usr/bin/gensrclist
Librerie...
/usr/lib/apt
/usr/lib/apt/methods
/usr/lib/apt/methods/bzip2
/usr/lib/apt/methods/cdrom
/usr/lib/apt/methods/copy
/usr/lib/apt/methods/file
/usr/lib/apt/methods/ftp
/usr/lib/apt/methods/gpg
/usr/lib/apt/methods/gzip
/usr/lib/apt/methods/http
/usr/lib/apt/methods/rsh
/usr/lib/apt/methods/ssh
/usr/lib/libapt-inst-libc6.3-5.so.1.0
/usr/lib/libapt-inst-libc6.3-5.so.1.0.0
/usr/lib/libapt-pkg-libc6.3-5.so.3.3
/usr/lib/libapt-pkg-libc6.3-5.so.3.3.0
Docs e manuali...
/usr/share/doc/apt-0.5.4cnc9
/usr/share/doc/apt-0.5.4cnc9/AUTHORS
/usr/share/doc/apt-0.5.4cnc9/AUTHORS.RPM
/usr/share/doc/apt-0.5.4cnc9/COPYING
/usr/share/doc/apt-0.5.4cnc9/COPYING.GPL
/usr/share/doc/apt-0.5.4cnc9/README.RPM
/usr/share/doc/apt-0.5.4cnc9/README.make
/usr/share/doc/apt-0.5.4cnc9/RPM-GPG-KEY
/usr/share/doc/apt-0.5.4cnc9/TODO
/usr/share/doc/apt-0.5.4cnc9/examples
/usr/share/doc/apt-0.5.4cnc9/examples/apt.conf
/usr/share/doc/apt-0.5.4cnc9/examples/configure-index
/usr/share/doc/apt-0.5.4cnc9/examples/sources.list
/usr/share/man/man5/apt.conf.5.gz
/usr/share/man/man5/apt_preferences.5.gz
/usr/share/man/man5/sources.list.5.gz
/usr/share/man/man5/vendors.list.5.gz
/usr/share/man/man8/apt-cache.8.gz
/usr/share/man/man8/apt-cdrom.8.gz
/usr/share/man/man8/apt-config.8.gz
/usr/share/man/man8/apt-get.8.gz
/usr/share/man/man8/apt.8.gz
Directory di appoggio
/var/cache/apt
/var/cache/apt/archives
/var/cache/apt/archives/partial
/var/cache/apt/genpkglist
/var/cache/apt/gensrclist
/var/state/apt
/var/state/apt/lists
/var/state/apt/lists/partial


DEBIAN:
Debian prevede l'installazione e configurazione di apt al momento dell'installazione della distribuzione, comunque di seguito è riportato un esempio di installazione di apt tramite dpkg tools.

pluto:~#dpkg -i apt_0.5.4_i386.deb apt-utils_0.5.4_i386.deb
Selecting previously deselected package apt.
(Reading database ... 6163 files and directories currently installed.)
Unpacking apt (from apt_0.5.4_i386.deb) ...
touch: creating `/var/lib/apt/lists/partial/.delete-me-later': No such file or directory
Selecting previously deselected package apt-utils.
Unpacking apt-utils (from apt-utils_0.5.4_i386.deb) ...
Setting up apt (0.5.4) ...

Setting up apt-utils (0.5.4) ...

pluto:~# dpkg -L apt
Binari
/.
/usr
/usr/bin
/usr/bin/apt-cache
/usr/bin/apt-cdrom
/usr/bin/apt-config
/usr/bin/apt-get
Librerie
/usr/lib
/usr/lib/apt
/usr/lib/apt/methods
/usr/lib/apt/methods/bzip2
/usr/lib/apt/methods/cdrom
/usr/lib/apt/methods/copy
/usr/lib/apt/methods/file
/usr/lib/apt/methods/ftp
/usr/lib/apt/methods/gzip
/usr/lib/apt/methods/http
/usr/lib/apt/methods/rsh
/usr/lib/apt/methods/ssh
/usr/lib/dpkg
/usr/lib/dpkg/methods
/usr/lib/dpkg/methods/apt
/usr/lib/dpkg/methods/apt/desc.apt
/usr/lib/dpkg/methods/apt/install
/usr/lib/dpkg/methods/apt/names
/usr/lib/dpkg/methods/apt/setup
/usr/lib/dpkg/methods/apt/update
/usr/lib/libapt-pkg-libc6.2-3-2.so.3.2.0
Docs, manuali e info
/usr/share
/usr/share/doc
/usr/share/doc/apt
/usr/share/doc/apt/guide.text.gz
/usr/share/doc/apt/changelog.gz
/usr/share/doc/apt/guide.html
/usr/share/doc/apt/guide.html/index.html
/usr/share/doc/apt/guide.html/ch1.html
/usr/share/doc/apt/guide.html/ch2.html
/usr/share/doc/apt/guide.html/ch3.html
/usr/share/doc/apt/guide.html/ch4.html
/usr/share/doc/apt/guide.html/footnotes.html
/usr/share/doc/apt/guide.it.html
/usr/share/doc/apt/guide.it.html/index.html
/usr/share/doc/apt/guide.it.html/ch1.html
/usr/share/doc/apt/guide.it.html/ch2.html
/usr/share/doc/apt/guide.it.html/ch3.html
/usr/share/doc/apt/guide.it.html/ch4.html
/usr/share/doc/apt/guide.it.html/footnotes.html
/usr/share/doc/apt/offline.html
/usr/share/doc/apt/offline.html/index.html
/usr/share/doc/apt/offline.html/ch1.html
/usr/share/doc/apt/offline.html/ch2.html
/usr/share/doc/apt/offline.html/ch3.html
/usr/share/doc/apt/copyright
/usr/share/doc/apt/.dhelp
/usr/share/doc/apt/examples
/usr/share/doc/apt/examples/apt.conf
/usr/share/doc/apt/examples/sources.list
/usr/share/doc/apt/examples/configure-index.gz
/usr/share/doc/apt/guide.it.text.gz
/usr/share/doc/apt/offline.text.gz
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/apt-get.8.gz
/usr/share/man/man8/apt-config.8.gz
/usr/share/man/man8/apt.8.gz
/usr/share/man/man8/apt-cache.8.gz
/usr/share/man/man8/apt-cdrom.8.gz
/usr/share/man/man5
/usr/share/man/man5/apt_preferences.5.gz
/usr/share/man/man5/vendors.list.5.gz
/usr/share/man/man5/apt.conf.5.gz
/usr/share/man/man5/sources.list.5.gz
File di Configurazione
/etc
/etc/apt
Directory di appoggio per il download dei file
/var
/var/cache
/var/cache/apt
/var/cache/apt/archives
/var/cache/apt/archives/partial
Directory di appoggio per lo storage di informazione riguardante i pacchetti
/var/lib
/var/lib/apt
/var/lib/apt/lists
/var/lib/apt/lists/partial
/usr/lib/libapt-pkg-libc6.2-3-2.so.3.2



Configurazione
REDHAT:
I file di configurazione principali sono:
- /etc/apt/apt.conf  modificabile sia direttamente con un editor come vi oppure tramite l'utility apt-config e contiene tutte le informazioni di carattere generale (Es: opzioni per lo scaricamento, oppure la lista di rpm a cui è permessa una molteplice installazione etc..)
- /etc/apt/sources.list che contiene gli indirizzi dei vari repository da cui scaricare i package.

Visualizzazione della configurazione di default  tramite l'utility apt-config:

[root@pluto root]# apt-config dump
APT "";
APT::Architecture "i386";
APT::Get "";
APT::Get::Download-Only "false";
APT::Get::Show-Upgraded "true";
Dir "/";
Dir::State "var/state/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::rpm "/bin/rpm";
RPM "";
RPM::Ignore "";
RPM::Ignore:: "gpg-pubkey";
RPM::Allow-Duplicated "";
RPM::Allow-Duplicated:: "kernel";
RPM::Allow-Duplicated:: "kernel-smp";
RPM::Allow-Duplicated:: "kernel-bigmem";
RPM::Allow-Duplicated:: "kernel-BOOT";
RPM::Allow-Duplicated:: "kernel-debug";
RPM::Allow-Duplicated:: "kernel-source";
RPM::Allow-Duplicated:: "gpg-pubkey";
RPM::Allow-Duplicated:: "alsa-kernel";
RPM::Allow-Duplicated:: "alsa-kernel-smp";
RPM::Source "";
RPM::Source::Build-Command "rpmbuild --rebuild";
Acquire "";
Acquire::Retries "0";
Acquire::DistroID "Conectiva";
Acquire::CDROM "";
Acquire::CDROM::Mount "/mnt/cdrom";
Acquire::CDROM::Copy-All "true";


DEBIAN:
Le utility e i file di configurazione sono praticamente identici, tranne per alcune differenze.
Il dump della configurazione di default risulta essere più ristretta quella di debian:

pluto:/etc/apt# apt-config  dump
APT "";
APT::Architecture "i386";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::userstatus "status.user";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::dpkg "/usr/bin/dpkg";
DPkg "";
DPkg::Pre-Install-Pkgs "";
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";

Inoltre debian mette a disposizione un tool in più per configurare apt:
apt-setup, che permette di richiamare un menu pseudo-grafico per la configurazione step-by-step come quella che si presenta l'installazione della distribuzione.
Esempio:




Esempi d'uso
Anche nell'uso le due distribuzioni si differiscono solo per pochi particolari come l'output di alcuni comandi:

Aggiornamento della cache, operazione essenziale per le interrogazioni sul db dei rpm disponibili e delle loro caratteristiche e al primo uso di apt.
[root@pluto apt]# apt-get update
Ign http://apt.freshrpms.net redhat/8.0/en/i386 release
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/os pkglist [1276kB]
Get:2 http://apt.freshrpms.net redhat/8.0/en/i386/os release [108B]                                     Get:3 http://apt.freshrpms.net redhat/8.0/en/i386/updates pkglist [295kB]                            Get:4 http://apt.freshrpms.net redhat/8.0/en/i386/updates release [113B]                             Get:5 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms pkglist [110kB]                         Get:6 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms release [125B]                          Get:7 http://apt.freshrpms.net redhat/8.0/en/i386/os srclist [152kB]                                      Get:8 http://apt.freshrpms.net redhat/8.0/en/i386/updates srclist [15.3kB]                             Get:9 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms srclist [26.7kB]                          Fetched 1875kB in 1m37s (19.2kB/s)                                                                                  Reading Package Lists... Done
Collecting File Provides... Done

Con debian:
pluto:~# pt-get update
Get:1 http://security.debian.org stable/updates/main Packages [101kB]          
Hit http://non-us.debian.org stable/non-US/main Packages                      
Hit http://non-us.debian.org stable/non-US/main Release                        
Hit http://non-us.debian.org stable/non-US/main Sources                        
Hit http://non-us.debian.org stable/non-US/main Release                        
Get:2 http://security.debian.org stable/updates/main Release [110B]            
Hit ftp://ftp2.it.debian.org stable/main Packages                              
Hit ftp://ftp2.it.debian.org stable/main Release                              
Hit ftp://ftp2.it.debian.org stable/main Sources                              
Hit ftp://ftp2.it.debian.org stable/main Release
Fetched 101kB in 15s (6737B/s)
Reading Package Lists... Done
Building Dependency Tree... Done

Ricerca di un rpm
[root@pluto apt]# apt-cache search ether
[...]
star - An archiving tool with ACL support
tar - A GNU file archiving program.
tcl - Tcl scripting language development environment
cvs - A version control system.
ethereal - Network traffic analyzer
ethereal-gnome - Red Hat Gnome integration for ethereal and ethereal-usermode

installazione di un RPM
[root@pluto apt]# apt-get install nmap
Reading Package Lists... Done
Collecting File Provides... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  nmap
0 packages upgraded, 1 newly installed, 0 removed and 26 not upgraded.
Need to get 273kB of archives. After unpacking 866kB will be used.
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/os nmap 2:3.00-1 [273kB]
Fetched 273kB in 18s (14.6kB/s)                                                                                                            
Executing RPM (-Uvh)...
Preparing...                ########################################### [100%]
   1:nmap                   ########################################### [100%]

Installazione di pacchetti .deb
pluto:~# apt-get install  fortune-it
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package fortune-it
pluto:~# apt-get install  fortunes-it
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  fortune-mod
The following NEW packages will be installed:
  fortune-mod fortunes-it
0 packages upgraded, 2 newly installed, 0 to remove and 4  not upgraded.
Need to get 464kB of archives. After unpacking 1235kB will be used.
Do you want to continue? [Y/n] y
Get:1 ftp://ftp2.it.debian.org stable/main fortunes-it 1.51-4 [426kB]
91% [Query]                                                                                                                     11.8kB/s 3s
Get:2 ftp://ftp2.it.debian.org stable/main fortune-mod 9708-25 [38.3kB]                                                                    
Fetched 464kB in 1m13s (6302B/s)                                                                                                          
Selecting previously deselected package fortunes-it.
(Reading database ... 6253 files and directories currently installed.)
Unpacking fortunes-it (from .../fortunes-it_1.51-4_all.deb) ...
Selecting previously deselected package fortune-mod.
Unpacking fortune-mod (from .../fortune-mod_9708-25_i386.deb) ...
Setting up fortunes-it (1.51-4) ...

Il pacchetto fortunes-it ha installato un gruppo di fortunes
potenzialmente offensivi. Vuoi cancellarli? [s/N]n
The fortunes-it package is installed with the set of potentially
offensive fortunes. Do you want to remove these? [y/N] n

Setting up fortune-mod (9708-25) ...

pluto:~#


Un po di statistiche
[root@pluto apt]# apt-cache stats
Total Package Names : 7677 (307k)
  Normal Packages: 1660
  Pure Virtual Packages: 1245
  Single Virtual Packages: 4403
  Mixed Virtual Packages: 1
  Missing: 368
Total Distinct Versions: 1861 (89.3k)
Total Dependencies: 25403 (711k)
Total Ver/File relations: 2186 (35.0k)
Total Provides Mappings: 7262 (145k)
Total Globbed Strings: 50 (899)
Total Dependency Version space: 13.0k
Total Slack space: 83.0k
Total Space Accounted for: 1372k
Info relative ad un package
[root@pluto apt]# apt-cache showpkg licq
Package: licq
Versions:
1.2.0a-2(/var/state/apt/lists/apt.freshrpms.net_redhat_8.0_en_i386_base_pkglist.os)

Reverse Depends:
  licq-text,licq 1.2.0a
  licq-qt,licq 1.2.0a
  licq-kde,licq 1.2.0a
  licq-gnome,licq 1.2.0a
Dependencies:
1.2.0a-2 - htmlview (0 (null)) /usr/bin/desktop-file-install (0 (null)) /bin/sh (0 (null)) /usr/bin/perl (0 (null)) libcrypto.so.2 (0 (null)) libc.so.6 (0 (null)) libc.so.6(GLIBC_2.0) (0 (null)) libc.so.6(GLIBC_2.1) (0 (null)) libc.so.6(GLIBC_2.1.2) (0 (null)) libc.so.6(GLIBC_2.1.3) (0 (null)) libdl.so.2 (0 (null)) libdl.so.2(GLIBC_2.0) (0 (null)) libdl.so.2(GLIBC_2.1) (0 (null)) libgcc_s.so.1 (0 (null)) libgcc_s.so.1(GCC_3.0) (0 (null)) libm.so.6 (0 (null)) libnsl.so.1 (0 (null)) libpthread.so.0 (0 (null)) libpthread.so.0(GLIBC_2.0) (0 (null)) libpthread.so.0(GLIBC_2.1) (0 (null)) libssl.so.2 (0 (null)) libstdc++.so.5 (0 (null)) libstdc++.so.5(GLIBCPP_3.2) (0 (null)) perl(IO::Handle) (0 (null)) perl(strict) (0 (null)) licq-data (3 1.6)
Provides:
1.2.0a-2 - licq_rms.so
Reverse Provides:

autorpm
Autore: neo - Ultimo Aggiornamento: 2003-04-02 11:12:31 - Data di creazione: 2003-04-02 11:12:31
Tipo Infobox: COMMANDS - Skill: 3- INTERMEDIATE

AutoRPM può essere utilizzato sia per richiamare la shell interattiva sia in modalità comando.
i comandi utilizzabili sono pressochè identici in entrambe le modalità

autorpm [opzioni] [cmd1] [cmd2] [cmdN]
Opzioni comuni:
--version Visualizza a video la versione
--debug  Abilita il debug mode
--notty Disabilita completamente l'interactive mode, da specificare in caso di scripts.
--tempdir Specifica la directory temporanea
help Visualizza i comandi disponibili

Comandi:
add Aggiunge un RPM alla lista
auto Processa in automatico tutto ciò che è configurato in autorpm.conf
fullinfo Visualizza tutte le informazioni di uno o più rpm
help Visualizza questo messaggio [Aliases: ?]
info Visualizza alcune informazioni di uno o più rpm
install Installa  RPM(s) sul sistema[Aliases: upgrade]
list Visualizza la lista di RPMs [Aliases: ls]
remove Rimuove RPMs dalla lista [Aliases: rm]
set Visualizza o modifica alcuni parametri

Installazione di AutoRPM
Autore: neo - Ultimo Aggiornamento: 2003-05-05 19:14:13 - Data di creazione: 2003-05-05 19:14:13
Tipo Infobox: STDOUT - Skill: 3- INTERMEDIATE

AutoRPM è un programma in Perl per automatizzare le procedure di donwload, installazione e upgrade dei package RPM (su RedHat Linux, di default, verifica gli errata ufficiali di RedHat).
E' possibile usufruire sia di script da mettere in cron, sia di una shell interattiva che permette di eseguire tutte le operazioni in real-time.
Di seguito è riportato un esempio di installazione (da RPM) e una breve descrizione di ciò che viene installato.

Le varie release si possono trovare al seguente repository: ftp://ftp.kaybee.org/
[root@GIOVE root]# wget ftp://ftp.kaybee.org/pub/redhat/RPMS/noarch/autorpm-3.2.3-2.noarch.rpm
[...]
Installazione
[root@GIOVE root]# rpm -ihv autorpm-3.2.3-2.noarch.rpm
warning: autorpm-3.2.3-2.noarch.rpm: V3 DSA signature: NOKEY, key ID ab75cc45
Preparing...                ########################################### [100%]
1:autorpm                ########################################### [100%]


Visualizzando tutte le informazione relative autorpm tramite l'utility RPM notiamo che i seguenti file sono stati installati:
[root@GIOVE root]# rpm -qil autorpm
[...]
Directory principale contenente tutti i file di configurazione
/etc/autorpm.d
File di configurazione per il download e l'installazione di un modulo perl
/etc/autorpm.d/TermReadlineGnu.conf
Directory riservata ai file di configurazione di terze parti
/etc/autorpm.d/addons
Crontab Script, utili se si vogliono automatizzare gli aggiornamenti
/etc/autorpm.d/autorpm.cron
GPG key
/etc/autorpm.d/keys
/etc/autorpm.d/keys/kirk.bauer.pub-key.pgp
/etc/autorpm.d/keys/pubring.gpg
/etc/autorpm.d/keys/trustdb.gpg
File contenenti gli indirizzi ftp dei vari rpm repository sparsi in tutto il mondo
/etc/autorpm.d/pools
/etc/autorpm.d/pools/TermReadlineGnu
/etc/autorpm.d/pools/autorpm-beta-updates
/etc/autorpm.d/pools/autorpm-updates
/etc/autorpm.d/pools/redhat-updates
/etc/autorpm.d/redhat-updates.conf
Esempi di configurazione, comodi per diverse modalità di aggiornamento
/etc/autorpm.d/sample_configs
/etc/autorpm.d/sample_configs/apply-updates.sample
/etc/autorpm.d/sample_configs/autorpm-beta-updates.sample
/etc/autorpm.d/sample_configs/autorpm-updates.sample
/etc/autorpm.d/sample_configs/autorpm.conf-sample
/etc/autorpm.d/sample_configs/exact_install.sample
/etc/autorpm.d/sample_configs/get-updates.sample
/etc/autorpm.d/sample_configs/redhat-mirror.sample
ChangeLog e alcune informazioni aggiuntive per l'uso di autorpm
/etc/autorpm.d/support/changes-2.0
/etc/autorpm.d/support/changes-2.5
/etc/autorpm.d/support/introduction.txt
/etc/autorpm.d/support/tips
Script per i vari RPM relativi al kernel, possono essere eseguiti dopo l'installazione di un RPM
/etc/autorpm.d/triggers
/etc/autorpm.d/triggers/kernel
Crontab script, eseguito quotidianamente
/etc/cron.daily/autorpm.cron
Script in perl
/usr/sbin/autorpm
Info di vario genere, crediti licenze e un esempio di configurazione
/usr/share/doc/autorpm-3.2.3
/usr/share/doc/autorpm-3.2.3/CHANGES
/usr/share/doc/autorpm-3.2.3/CREDITS
/usr/share/doc/autorpm-3.2.3/License
/usr/share/doc/autorpm-3.2.3/README
/usr/share/doc/autorpm-3.2.3/TODO
/usr/share/doc/autorpm-3.2.3/queue.format
/usr/share/doc/autorpm-3.2.3/samples.conf
Manuali
/usr/share/man/man5/autorpm.conf.5.gz
/usr/share/man/man8/autorpm.8.gz
Directory di appoggio, Temp_Dir(). Qui vengono copiati gli RPM scaricati
/var/spool/autorpm
/var/spool/autorpm/scores

patch
Autore: neo - Ultimo Aggiornamento: 2003-03-07 15:30:48 - Data di creazione: 2003-03-07 15:30:48
Tipo Infobox: COMMANDS - Skill: 3- INTERMEDIATE

Applica un patch file (un file creato con l'utility diff) ad un file originale per applicarne le differenze. Spesso viene utilizzato per applicare le modifiche al codice sorgente per poi essere ricompilato per creare i nuovi file binari (eseguibili) modificati e aggiornati.

patch [opzioni] [file originale] [patch file]
oppure
patch -pnum < patchfile

-b;--backup Esegue il backup dei file patchati.
-f;--force Abilita il force mode, esegue tutte le operazioni senza chidere conferma.
-pnum;--strip=num Elimina "num" slash dal path di ogni filename all'interno del patch file.
Esempio:
Filename = /usr/src/linux/kernel/module.c
-p0 (Rimane invariato)
FilenameCorretto= /usr/src/linux/kernel/module.c
-p3
FilenameCorretto = linux/kernel/module.c
--verbose Abilita il verbose mode, vengono printate a video più informazioni possibili
-s;--silent;--quiet Abilita un opzione per cui vengono vengono limitati i messaggi a video.
-V method;--version-control=methodSpecifica il metodo per determinare il nome dei file di backup.

Privacy Policy