[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ successivo ]
Sia il metodo APT per dselect
sia apt-get
condividono
la stessa interfaccia; si tratta di un sistema semplice che indica in genere
cosa sta per fare, e poi lo fa. [2]
Dopo la stampa di un riassunto delle operazioni che saranno fatte, APT stampa
dei messaggi informativi sullo stato, in modo da poter avere un'idea del punto
a cui arrivato e di quanto ci sia ancora da fare.
Prima di ogni operazione, eccetto update, APT compie alcune operazioni per preparare il suo stato interno; fa inoltre dei controlli sullo stato del sistema. In qualsiasi momento le stesse operazioni possono essere fatte con apt-get check.
# apt-get check Lettura elenco pacchetti... Fatto Generazione albero delle dipendenze... Fatto
La prima cosa che fa è leggere tutti i file dei pacchetti in memoria; APT usa un sistema di cache in modo da rendere la stessa operazione più veloce la seconda volta che la si fa. Se alcuni dei file dei pacchetti non vengono trovati, sono ignorati e viene stampato un avvertimento all'uscita di apt-get.
L'operazione finale consiste in un'analisi dettagliata delle dipendenze del
sistema: viene controllato che tutte le dipendenze dei singoli pacchetti
installati o non scompattati siano soddisfatte. Se vengono individuati dei
problemi, viene stampato un resoconto, e apt-get
esce senza
eseguire alcuna operazione.
# apt-get check Lettura elenco pacchetti... Fatto Generazione albero delle dipendenze... Fatto È utile eseguire "run apt-get -f install" per correggere ciò. I seguenti pacchetti hanno dipendenze non soddisfatte: 9fonts: Dipende: xlib6g ma non è installato uucp: Dipende: mailx ma non è installato blast: Dipende: xlib6g (>= 3.3-5) ma non è installato adduser: Dipende: perl-base ma non è installato aumix: Dipende: libgpmg1 ma non è installato debiandoc-sgml: Dipende: sgml-base ma non è installato bash-builtins: Dipende: bash (>= 2.01) ma la versione 2.0-3 è installata cthugha: Dipende: svgalibg1 ma non è installato Dipende: xlib6g (>= 3.3-5) ma non è installato libreadlineg2: Va in conflitto: libreadline2 (<< 2.1-2.1)
In questo esempio il sistema ha molti problemi, tra cui uno piuttosto serio con libreadlineg2. Per ciascun pacchetto che ha dipendenze non soddisfatte, viene stampata una riga che indica il pacchetto con il problema e quali dipendenze non sono soddisfatte. Viene inclusa inoltre una breve spiegazione del perché il pacchetto ha un problema di dipendenze.
Ci sono due modi in cui un sistema può arrivare in uno stato problematico di
questo genere: il primo avviene se dpkg
non ha ravvisato alcune
relazioni delicate tra i pacchetti durante un aggiornamento. [3] Il secondo è possibile se
l'installazione di un pacchetto fallisce; in questo caso è possibile che un
pacchetto venga scompattato senza che tutti quelli da cui dipende siano stati
installati.
La seconda situazione è molto meno seria della prima, dato che APT pone alcune
restrizioni sull'ordine di installazione dei pacchetti. In entrambi i casi
l'opzione -f di apt-get
farà sì che APT trovi una
soluzione possibile e possa continuare. Il metodo APT di dselect
comprende sempre l'opzione -f per permettere di continuare
facilmente anche in caso di script dei manutentori errati.
Tuttavia, se l'opzione -f viene usata per correggere un sistema in uno stato molto problematico causato da una situazione del primo tipo, è possibile che l'operazione fallisca subito o che fallisca durante la sequenza di installazione. In entrambi i casi è necessario usare dpkg a mano (probabilmente usando delle opzioni di forzatura) per correggere quanto basta per poter fare continuare APT.
Prima di procedere, apt-get
presenterà un resoconto delle
operazioni che sta per fare. In genere tale resoconto varierà con il tipo di
operazione da fare, ma ci sono svariati elementi comuni: in tutti i casi gli
elenchi riflettono lo stato finale delle cose, e tengono conto dell'opzione
-f e di altre attività rilevanti per il comando da eseguire.
I seguenti pacchetti saranno inoltre installati: libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy squake pgp-i python-base debmake ldso perl libreadlineg2 ssh
L'elenco dei pacchetti extra mostra tutti i pacchetti che verranno installati o aggiornati oltre a quelli indicati sulla riga di comando. Viene generato solo per il comando install. I pacchetti elencati sono spesso il risultato di un'operazione di installazione automatica.
I seguenti pacchetti saranno RIMOSSI: xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid nas xpilot xfig
L'elenco dei pacchetti da rimuovere indica tutti i pacchetti che verranno rimossi dal sistema. Può essere mostrato per una qualsiasi delle operazioni, e deve sempre essere esaminato attentamente per assicurarsi che non venga eliminato qualcosa di importante. Con l'opzione -f è particolarmente probabile che vengano eliminati dei pacchetti, perciò in questo caso va fatta particolare attenzione. L'elenco può contenere dei pacchetti che verranno rimossi perché sono solo parzialmente installati, forse a causa di un'installazione non terminata correttamente.
I seguenti pacchetti NUOVI saranno installati: zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base
L'elenco dei nuovi pacchetti installati è semplicemente un promemoria su quello che accadrà. I pacchetti nell'elenco non sono al momento installati nel sistema, ma lo saranno alla fine delle operazioni di APT.
I seguenti pacchetti sono stati mantenuti alla versione attuale: compface man-db tetex-base msql libpaper svgalib1 gs snmp arena lynx xpat2 groff xscreensaver
In ogni caso in cui il sistema viene aggiornato nel suo insieme, c'è la
possibilità che non possano venire installate nuove versioni di alcuni
pacchetti, dato che potrebbero richiedere l'installazione di pacchetti non
presenti nel sistema o entrare in conflitto con altri già presenti. In questo
caso, il pacchetto viene elencato nella lista di quelli mantenuti alla versione
attuale. Il miglior modo per forzare l'installazione dei pacchetti elencati in
questa lista è installarli con apt-get install o usare
dselect
per risolvere i problemi.
I seguenti pacchetti bloccati saranno cambiati: cvs
A volte si può richiedere ad APT di installare un pacchetto che è stato bloccato; in questi casi viene stampato un messaggio che avverte che il pacchetto verrà modificato. Questo dovrebbe accadere solo durante operazioni di dist-upgrade o di install.
Infine, APT stamperà un riassunto di tutte le modifiche che accadranno.
206 aggiornati, 8 installati, 23 da rimuovere e 51 non aggiornati. 12 non completamente installati o rimossi.. È necessario scaricare 65.7M/66.7M di archivi. Dopo quest'operazione, verranno occupati 26.5M di spazio su disco.
La prima riga del riassunto è semplicemente una versione ridotta di tutti gli elenchi ed include il numero di aggiornamenti, cioè dei pacchetti già installati per cui è disponibile una nuova versione. La seconda riga indica il numero di pacchetti con problemi di configurazione, probabilmente in conseguenza di un'installazione non andata a buon fine. La riga finale indica i requisiti di spazio dell'installazione; i primi due numeri riguardano la dimensione dei file archivio: indicano rispettivamente il numero di byte che devono essere trasferiti da posizioni remote e la dimensione totale di tutti gli archivi necessari. Il numero successivo indica la differenza in dimensione tra i pacchetti già installati e quelli che lo saranno, ed è approssimativamente equivalente allo spazio richiesto in /usr dopo l'installazione. Se si stanno rimuovendo molti pacchetti, allora il valore può indicare lo spazio che verrà liberato.
Si possono generare altri resoconti usando l'opzione -u per mostrare i pacchetti da aggiornare, ma sono simili all'esempio precedente.
Durante lo scaricamento degli archivi e dei file dei pacchetti APT stampa una serie di messaggi di stato.
# apt-get update Scaricamento di:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages Scaricamento di:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages Trovato http://llug.sep.bnl.gov/debian/ testing/main Packages Scaricamento di:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages Scaricamento di:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages 11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s
Le righe che cominciano con Scaricamento di vengono stampate quando APT inizia a scaricare un file, mentre l'ultima riga indica il progresso dell'operazione. Il primo valore in percentuale nella riga di progresso indica la percentuale totale scaricata di tutti i file; dato che la dimensione dei file Package non è nota, purtroppo a volte apt-get update fa una stima poco accurata.
La sezione successiva della riga di stato viene ripetuta una volta per ciascuna istanza di scaricamento, ed indica l'operazione in corso, insieme ad alcune informazioni utili su cosa stia accadendo. A volte questa sezione contiene solamente Forking, che significa che il sistema operativo sta caricando il modulo per lo scaricamento. La prima parola dopo la parentesi quadra aperta è il numero dello scaricamento come mostrato nelle righe della cronologia. La parola successiva è il nome breve dell'oggetto che si sta scaricando, che per gli archivi è il nome del pacchetto.
All'interno delle virgolette singole c'è una stringa informativa, che indica il progresso della fase di negoziazione dello scaricamento. Tipicamente comincia con Connecting, procede con Waiting for file e poi con Downloading o Resuming; il valore finale è il numero di byte che sono stati scaricati dal sito remoto. Una volta cominciato lo scaricamento, viene rappresentato come 102/10.2k, che indica che sono stati scaricati 102 byte su 10,2 kilobyte attesi. La dimensione totale viene sempre espressa in notazione a quattro cifre, per risparmiare spazio. Dopo la dimensione viene indicato un indicatore progressivo della percentuale del file. Il penultimo elemento è la velocità istantanea media, che viene aggiornata ogni 5 secondi e riflette la velocità di trasferimento dei dati in quel periodo. Infine, viene visualizzato il tempo stimato per il trasferimento, che viene aggiornato periodicamente e riflette il tempo necessario per completare tutte le operazioni alla velocità di trasferimento mostrata.
La visualizzazione dello stato viene aggiornata ogni mezzo secondo per fornire un feedback costante sul processo di scaricamento, e le righe Get scorrono in alto quando viene avviato lo scaricamento di un nuovo file. Dato che la visualizzazione dello stato viene costantemente aggiornata, non è adatta per essere registrata in un file; per non visualizzarla si può usare l'opzione -q.
APT usa dpkg
per installare gli archivi e passerà all'interfaccia
di dpkg
una volta completati gli scaricamenti. dpkg
porrà anche alcune domande durante l'elaborazione dei pacchetti, ed i
pacchetti stessi potranno farne altre. Prima di ciascuna domanda viene
proposta di solito una descrizione di ciò che viene chiesto, e le domande sono
troppo diverse per poter essere discusse in maniera completa in questa
occasione.
[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ successivo ]
Guida dell'utente di APT
$Id: guide.sgml,v 1.7 2003/04/26 23:26:13 doogie Exp $jgg@debian.org