223
contributi
Riga 1: | Riga 1: | ||
{{stub}} | |||
==Introduzione== | |||
a | Questa guida � dedicata all'uso di Aptitude come frontend per la gestione avanzata dei pacchetti di una distribuzione Debian, ma risulta valida per tutte le distribuzioni che supportano APT (http://www.debian.org/doc/manuals/apt-howto/ch-distros.it.html). | ||
L'intento dichiarato dell'autore � quello di indirizzare gli utenti ad imparare l'utilizzo di Aptitude, per usarlo come strumento preferenziale per l'amministrazione dei pacchetti, in quanto permette una pi� facile analisi delle varie situazioni in cui il sistema viene di volta in volta a trovarsi. | |||
:[[ | Aptitude � un frontend a dpkg esattamente come apt-get, che sembra essere destinato a sostituire integralmente lo stesso apt-get, tanto che nelle release notes di Sarge si legge: | ||
{{Box|Citazione:|Il metodo di aggiornamento raccomandato fra le release Debian GNU/Linux prevede l'utilizzo dello strumento di gestione dei pacchetti aptitude. Tale strumento rende le decisioni riguardanti le installazioni dei pacchetti pi� sicure che l'esecuzione diretta di apt-get.}} | |||
e anche: | |||
{{Box|Citazione:|Test di aggiornamento hanno mostrato che la versione di sarge di aptitude � migliore sia di apt-get sia della versione di woody di aptitude nella risoluzione di dipendenze complesse durante un aggiornamento.}} | |||
Si pu� utilizzare Aptitude in due modi: da linea di comando, cio� come apt-get (la sintassi e le opzioni sono identiche, o quasi), oppure tramite l'interfaccia utente basata sulle librerie ncurses. | |||
Per l'uso da linea di comando si rimanda all'apt-howto (aptitude install apt-howto-it, oppure http://www.debian.org/doc/manuals/apt-howto/index.it.html ) e alla pagina di manuale (man aptitude), invece tratter� pi� diffusamente l'interfaccia utente, perch� ritengo sia uno strumento fondamentale per la gestione dei pacchetti e soprattutto per la diagnostica e la risoluzione degli eventuali problemi riscontrati. | |||
{{Box|Prima di iniziare|Prima di iniziare a mettere le mani sulla tastiera, notiamo che aptitude, a differenza della maggior parte delle opzioni di apt-get, si pu� lanciare anche con i diritti di utente comune. | |||
Poich� per l'effettiva installazione o rimozione dei pacchetti � necessario possedere i diritti di root, � possibile e caldamente consigliato usare questa possibilit� per effettuare qualunque prova, visto che non si sar� in grado di modificare neanche una virgola del sistema prima di aver inserito la password di root.}} | |||
==Interfaccia utente== | |||
La prima schermata che aptitude ci presenta, dopo che l'abbiamo lanciato da linea di comando, e dopo il caricamento delle informazioni attuali sui pacchetti ("caricamento della cache"), � divisa orizzontalmente in due parti. | |||
Nella parte superiore troviamo una zona a sfondo blu con un men� che propone diverse opzioni, e una zona a sfondo nero in cui si vede l'albero dei pacchetti disponibili, classificati in base al loro stato (installati, non installati, ecc.). | |||
Per vedere il contenuto di uno dei rami usiamo le frecce "su" e "giu" fino a selezionare la riga corrispondente e premiamo invio. Sotto al ramo in questione ora abbiamo dei sottorami, e premendo invio sui vari sottorami si accede allo stesso modo ai sotto-sottorami e cos� via, fino ad arrivare ai pacchetti. | |||
La parte inferiore � invece dedicata alla descrizione del pacchetto attualmente selezionato. Alcuni pacchetti, per esempio k3b, hanno una descrizione molto lunga: premendo TAB e usando le frecce � possibile leggerla tutta. | |||
Ogni riga che mostra il nome di una pacchetto riporta anche molte informazioni. | |||
Per esempio, riporto lo stato di alcuni pacchetti nel mio sistema (nota: il mio sistema � una sarge, ma ho installato diversi pacchetti da testing e anche alcuni da unstable. Per informazioni sul pinning vedere [[APT_uso_avanzato:_mixare_releases_diverse | APT uso avanzato: mixare releases diverse ]]: | |||
<pre> | |||
stato nome vers. attuale vers. aggiornata | |||
i aptitude 0.2.15.9-2 0.2.15.9-2 | |||
i amule 2.0.3-3 2.0.3-4 | |||
i A amule-common 2.0.3-3 2.0.3-4 | |||
c hotplug <nessuna> 0.0.200403 | |||
p apmd <nessuna> 3.2.2-3 | |||
</pre> | |||
Possiamo vedere che: | |||
*aptitude � installato ed � alla versione pi� recente | |||
*amule � installato ma � aggiornabile alla versione 2.0.3-4 | |||
*amule-common � installato per soddisfare una dipendenza (<tt>A</tt>), cio� solo a causa di un pacchetto che dipende da lui (amule). Anch'esso � aggiornabile | |||
*hotplug non � installato, ma quando l'ho cancellato ho scelto di mantenere i file di configurazione (<tt>c</tt>) | |||
*apmd non � installato (<tt>p</tt>) | |||
Tramite semplici comandi si possono visualizzare molte altre informazioni. I comandi principali sono: | |||
; v: visualizza le versioni disponibili per il pacchetto | |||
; d: visualizza le dipendenze del pacchetto | |||
; r: visualizza i pacchetti che dipendono dal pacchetto selezionato | |||
; C: scarica da internet e visualizza il changelog del pacchetto | |||
; q: chiudi la schermata attuale e passa a quella precedente | |||
Per una lista completa vedere la guida online con "?". | |||
Ora premiamo invio su di un pacchetto: ci appare la schermata relativa al pacchetto, con la descrizione completa e molte altre informazioni, organizzate ad albero come abbiamo gi� visto. Se ci interessa qualche informazione su uno dei pacchetti che troviamo in questa schermata, lo selezioniamo e premiamo invio: appaiono le versioni disponibili del pacchetto. Se selezioniamo una delle versioni e premiamo invio ci ritroviamo nella schermata informativa di quel pacchetto. Fate attenzione perch� in questo modo si pu� perdere facilmente l'orientamento. | |||
Torniamo alla vista dell'albero dei pacchetti premendo "q" tante volte quanto serve (se vi sbagliate e lo premete una volta in pi� vi chiede se volete uscire dal programma: per il momento dite di no ;-)). | |||
==Aggiornare i pacchetti== | |||
Per la descrizione dell'utilizzo di Aptitude user� come esempio una sessione reale, in cui vengono svolte alcune normali operazioni di aggiornamento e amministrazione dei pacchetti. | |||
Per prima cosa, nella nostra sessione di amministrazione, aggiorniamo le informazioni sui pacchetti disponibili. Con apt-get avremmo digitato apt-get update, mentre in aptitude � sufficiente premere "u". | |||
Fate attenzione perch� aptitude non chiede conferma dopo che avete impartito un comando, quindi non digitate nulla senza prima essere sicuri/e di cosa state per fare. | |||
Dopo aver fatto l'update potremmo trovare una, due, o tre voci nuove nell'albero dei pacchetti: "Aggiornamenti di sicurezza", "Pacchetti aggiornabili", e "pacchetti nuovi". Per fare scomparire le prime due � necessario aggiornare tutti i pacchetti contenuti nei rispettivi rami, mentre per far sparire la terza � sufficiente premere "f" (forget). | |||
Ora torniamo ai pacchetti mostrati prima e supponiamo di voler aggiornare amule: lo seleziono e premo "+". Questo marcher� in verde, cio� per l'installazione, sia amule che amule-common. Poi per� mi viene un'idea migliore, e decido di aggiornare tutti i pacchetti aggiornabili, quindi digito "^" per risalire al ramo superiore della vista, finch� arrivo a <tt>Pacchetti installati</tt> poi uso la freccia in alto e se necessario risalgo ancora ai rami superiori finch� non arrivo a <tt>Pacchetti aggiornabili</tt> e qui premo "+". Questo marcher� per l'installazione tutti i pacchetti aggiornabili :-D | |||
==Risolvere eventuali problemi con delle dipendenze== | |||
Dopo aver marcato per l'installazione tutti i pacchetti aggiornabili, aptitude mi segnala nella zona blu che c'� un pacchetto "errato" cio� con problemi di dipendenze. Senza battere ciglio premo "b" e vedo: | |||
<pre> | |||
iB udev 0.070 0.074 | |||
</pre> | |||
dove "B" significa "con errori", e sotto si legge: | |||
<pre> | |||
Alcune dipendenze di udev non sono soddisfatte: | |||
*udev � in conflitto con module-init-tools (< 3.2pre9-1) | |||
</pre> | |||
premo invio su udev, e mi appare la schermeta con tutte le informazioni su udev stesso, comprese le dipendenze: seleziono module-init-tools e premo invio. Ora mi appaiono tutte le versioni disponibili di module-init-tools, tra cui vedo che � presente la 3.2pre9-1: non mi resta che selezionarla e marcarla per l'installazione :-D. | |||
Quello che � successo � semplicemente che nel mio sistema udev � in testing, e fino alla versione 0.070 funzionava bene con module-init-tools-3.2pre1-2, che invece � in stable. Aggiornando tutto ho marcato per l'installazione il nuovo udev, versione 0.074, che per� dipende da module-init-tools >= 3.2pre9-1. Poich� questo pacchetto � in testing, APT non ha potuto risolvere la dipendenza automaticamente: se un pacchetto � in una distribuzione (e APT � configurato nel modo giusto) non verr� mai passato ad un'altra, a meno che non siate voi a farlo manualmente. | |||
Vorrei far notare che questo comportamento non � un bug, ma una cosa voluta: APT ha ricevuto un comando ambiguo e lo segnala generando un errore, proprio come noi ci aspettiamo da lui ;-). | |||
In effetti, i reali colpevoli della generazione dell'errore siamo noi. Infatti, per permettere ad APT di gestire correttamente delle dipendenze in testing, dobbiamo semplicemente usare "testing" come distribuzione predefinita. Ricordate che abbiamo lanciato aptitude semplicemente con il comando "aptitude"? e ricorderete anche che il mio sistema � una sarge (stable). Questo equivale a lanciare aptitude con il comando "aptitude -t stable", da cui il nostro problema. Se avessimo usato "aptitude -t testing" aptitude avrebbe risolto correttamente la dipendenza, ma attenzione: in questo modo aptitude pensa che testing sia la nostra release predefinita (che non � vero) e mostrer� come aggiornabili tutti i pacchetti che lo sono in testin, cio� anche tutti quelli in stable (come peraltro ci aspettiamo che faccia ;-)). | |||
Il fatto � che aptitude, per quanto avanzato, ancora non legge il pensiero dell'amministratore, e fa solo il suo mestiere: prende tutte le decisioni ovvie autonomamente, e genera un errore quando non sa cosa decidere. | |||
==Cercare un pacchetto== | |||
Ora vorrei vedere se in debian c'� qualche programma per la gestione dei contenuti, e l'acronimo in inglese � "cms". Per fare questo posso usare le funzioni di ricerca di aptitude: per prima cosa digito "/" per la ricerca della stringa "cms" nei nomi dei pacchetti. | |||
Ora per� mi viene in mente che un cms non contiene necessariamente la stringa "cms" nel nome, quindi faccio una ricerca delle descrizioni per la stessa stringa: digito ancora "/" e inserisco "~dcms". Aptitude mi mostra il primo risultato della ricerca: per vedere il successivo premo "n" oppure "\". |
contributi