1 760
contributi
(→Altro: cambiato nome visualizzato guida "Dual boot Linux-Windows) |
m (→Gestione dei Pacchetti: aptitude de-stubbed) |
||
Riga 1: | Riga 1: | ||
{{stub}} | |||
== Introduzione == | |||
Questa guida � dedicata all'uso di Aptitude. | |||
Il completissimo '''manuale utente di Aptitude''' in formato html si pu� trovare installando il pacchetto <tt>aptitude-doc-en</tt>, in <tt>/usr/share/doc/aptitude/html/en/index.html</tt>. Purtroppo il manuale � solo in inglese. | |||
== | == Cos'� Aptitude == | ||
Aptitude � un 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). | |||
Aptitude � ormai lo strumento preferenziale per l'amministrazione dei pacchetti su Debian, in quanto non solo raggruppa in un unico semplice programma le funzionalit� di molti tool (apt-get, apt-cache ...) ma anche perch� permette di gestire in modo molto pi� facile (ed efficace) situazioni complesse (dipendenze, dipendenze inverse, rimozione pacchetti non utilizzati, ecc ...). | |||
Aptitude � un frontend a dpkg esattamente come apt-get, che sembra essere destinato a sostituire integralmente lo stesso [[Introduzione_all%27_Apt_System | apt-get (e affini)]], 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 al manuale utente gi� citato, alla pagina di manuale (man aptitude) e all'apt-howto (aptitude install apt-howto-it, oppure http://www.debian.org/doc/manuals/apt-howto/index.it.html ). | |||
Invece verr� trattata pi� diffusamente l'interfaccia utente, perch� si ritiene che 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 (dipendenze inverse) | |||
; C: scarica da internet e visualizza il changelog del pacchetto | |||
; q: chiude 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 useremo 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 <tt>apt-get update</tt>, 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). | |||
= | Una buona regola per l'amministratore � quella di far s� che alla fine dell'aggiornamento queste tre voci non siano presenti. Se ci sono dei pacchetti che risultano aggiornabili, ma che non volete aggiornare, probabilmente dovreste bloccarli alla versione desiderata con "=", oppure dovreste leggere la guida gi� citata sul pinning. | ||
Ora torniamo ai pacchetti mostrati prima e supponiamo di voler aggiornare amule: lo selezioniamo e premiamo "+". Questo marcher� in verde, cio� per l'installazione, sia amule che amule-common. | |||
Poi per� ci viene un'idea migliore, e decidiamo di aggiornare tutti i pacchetti aggiornabili, quindi digitiamo "^" per risalire al ramo superiore della vista, finch� arriviamo a <tt>Pacchetti installati</tt> poi usiamo la freccia in alto e se necessario risaliamo ancora ai rami superiori finch� non arriviamo a <tt>Pacchetti aggiornabili</tt> e qui premiamo "+". 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 ci segnala nella zona blu che c'� un pacchetto "errato" cio� con problemi di dipendenze. Senza battere ciglio premiamo "b" e leggiamo: | |||
<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> | |||
premiamo invio su udev, e ci appare la schermata con tutte le informazioni su udev stesso, comprese le dipendenze: selezioniamo module-init-tools e premiamo invio. Ora ci appaiono tutte le versioni disponibili di module-init-tools, tra cui vediamo che � presente la 3.2pre9-1: non ci 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 abbiamo 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 siamo noi a farlo manualmente. | |||
Si prega di 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 diciamo ad aptitude che testing � la nostra release predefinita (che non � vero) e lui ci mostrer� come aggiornabili tutti i pacchetti che lo sono in testing, 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 ''''\''''. | |||
Il comando ''''l'''', invece, funziona allo stesso modo di ''''/'''' ma mostra solo i pacchetti corrispondenti alla ricerca (a differenza di ''''/'''' che evidenzia nella lista il primo pacchetto corrispondente alla ricerca). | |||
== Personalizzare la visualizzazione dei pacchetti == | |||
Con aptitude � possibile personalizzare sia i campi visualizzati nella lista dei pacchetti, sia il raggruppamento in sezioni e sotto-sezioni. | |||
=== Personalizzare il raggruppamento in sezioni === | |||
Le sezioni nelle quali sono raggruppati i pacchetti quando si avvia Aptitude (e non solo) sono generate dinamicamente da un insieme di regole separate da virgola. E' possibile vedere e modificare le regole che generano la vista attuale premendo ''''G''''. | |||
Le regole vengono elaborate in sequenza dalla prima all'ultima | |||
Vediamo alcune regole: | |||
; <tt>filter(missing)</tt> : non visualizza i pacchetti che esistono solo nelle dipendenze di un altro pacchetto. | |||
; <tt>status</tt> : Raggruppa i pacchetti in: | |||
:* Installati | |||
:* Non installati | |||
:* Aggiornamenti della sicurezza | |||
:* Aggiornabili | |||
:* Obsoleti | |||
:* Virtuali | |||
; <tt>section[(''mode''[,passthrough])]</tt> : Raggruppa i pacchetti in base alla loro sezione. ''mode'' pu� assumere uno dei seguenti valori: | |||
:; <tt>topdir</tt> : Raggruppa un base alla sezione dell'archivio debian (esempio: ''"main", "contrib", "non-free" ...''). | |||
:; <tt>subdir</tt> : Raggruppa in base alla sezione logica (esempio: ''"adim", "base", "devel", "gnome", "kde", ecc ...'') | |||
:; <tt>none</tt> : Raggruppa in base delle sezioni formate dalla somma delle precedenti (esempio: ''"controb/admin", "contrib/devel", "non-free/admin", "non-free/devel"). | |||
:; <tt>task</tt> : Crea un albero dei pacchetti raggruppandoli per task. | |||
: Se viene usato il secondo parametro opzionale <tt>passthrough</tt> i pacchetti che per qualche motivo non hanno una sezione vengono passati alla regola successiva senza essere inseriti in categorie. | |||
All'avvio di aptitude, premendo ''''G'''' si pu� vedere che vengono usate le seguenti regole: | |||
filter(missing),task,status,section(subdir,passthruough),section(topdir,passthrough) | |||
In base a quanto detto la spiegazione di queste regole � semplice: ''visualizza solo i pacchetti reali, crea l'albero dei task, raggruppa i pacchetti per stato, per ogni stato raggruppa in sezioni logiche e all'interno di ogni sezione logica raggruppa in base alla sezione dell'archivio''. |
contributi