m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
== Introduzione ==
== Introduzione ==


Questa guida � dedicata all'uso di Aptitude.
Se state leggendo questa guida penso conosciate gi� la mitica distribuzione live [http://www.damnsmalllinux.org/ Damn Small Linux] che in soli 50 MB vanta un sistema Linux e un corredo software davvero impressionante. Damn Small Linux, o DSL come la chiameremo di seguito, una derivata di Debian ristretta fino all'osso al fine di non superare il limite di 50 MB, tuttavia � facilmente espandibile tramite le estensions che permettono di trasformare DSL in un sistema Debian-like completo.


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.
In questa guida vedremo come fare avviare Damn Small Linux direttamente da chiavetta USB, senza bisogno di bruciare un cd.  


== Cos'� Aptitude ==
Usando una chiavetta avremo il vantaggio di poter salvare le nostre impostazioni e/o aggiungere altro software nella chiavetta stessa, ottendendo cos� un sistema live (basta inserire la chiavetta in qualsiasi pc che supporta il boot da disposistivi USB) estremamente compatto e soprattutto modificabile al volo (cosa impossibile con un normale cd). Inoltre sia la compattezza della distribuzione che la velocit� dei dispositivi USB2 permettono di ottenere prestazioni superiori ad un normale livecd. E' addirittura possibile caricare l'intero sistema in ram (basta passare l'opzione <tt>toram</tt> al boot), con conseguente apertura fulminea di qualsiasi applicazione ;-).


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).
L'unico prequisito che la scheda madre supporti il boot da periferica USB (molti produttori stanno rendendo disponibile questa funzionalit� attraverso nuovo firmware BIOS). Ed una chiavetta USB di almeno 50 MB, of course ;-).


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 ...).
Se la vostra scheda madre non supporta il boot da periferiche USB, dovrete preparare un floppy od un cd per il boot. Questo argomento '''non � trattato nella guida'''.


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:
== Formattazione della chiavetta ==


{{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.}}
Se la vostra chiavetta contiene gi� una partizione � un filesystem fat16 (o fat32) non dovremo formatarla e potremo anche lasciare gli altri eventuali file presenti che non daranno fastidio.


e anche:
Se invece dovete formattare la chiavetta, consiglio di creare un unica partizione avviabile con <tt>cfdisk</tt> e creare un filesystem fat16 con <tt>mkfs.vfat</tt>:


{{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.}}
# mkfs.vfat -n nome -F 16 /dev/sda1


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.
== Copia dei file e preparazione della chiavetta ==


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 ).
Scarichiamo la [http://ftp.belnet.be/packages/damnsmalllinux/current/dsl-2.0.iso iso di DSL] (usate la versione normale, non la syslinux, embedded ecc...).


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.
Eseguiamo le seguenti operazioni di semplice copia e rinominazione di file:


{{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.  
# mkdir dsl_temp
# mkdir dsl_usb
# mount -o loop dsl-0.8.3.iso dsl_temp
# cp -a dsl_temp/* dsl_usb
# cd dsl_usb
# mv boot/isolinux/* ./
# rm -Rf boot
# mv isolinux.bin syslinux.bin
# mv isolinux.cfg syslinux.cfg
# cd..
# mkdir usb_pen
# mount -t vfat /dev/sda1 usb_pen
# cp -a dsl_usb/* usb_pen
# umount usb_pen


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.}}
Ora prepariamo il [[MBR]] della chiavetta con:


==Interfaccia utente==
# syslinux /dev/sda1


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.
Se non avete l'ultimo comando (syslinux) potete installarlo tramite [[APT]] oppure tramite gli usuali strumenti forniti dalla vostra distribuzione.


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.).
== Boot di DSL ==


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.
A questo punto non ci resta che sezionare il boot tramite dispositivo USB ed avviare il pc.


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.
Per avviare il sistema in lingua italiana digitare:


Ogni riga che mostra il nome di una pacchetto riporta anche molte informazioni.
dsl lang=it
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
(il segno di uguale si fa con il tasto '�' della tastiera italiana)
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:
E in pochi secondi dovrebbe caricarsi il sistema DSL.
*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:
{{Warningbox|Se non riuscite a fare il boot dalla chiavetta (cio� non appare neanche il logo iniziale di DSL) provate a formattare la chiavetta seguendo le [[#Formattazione della chiavetta|precendenti istruzioni]]. Nel caso non riusciste ancora a fare il boot la vostra chiavetta non � compatibile con questo procedimento. Per qualche strano motivo, infatti, alcune chiavette non sono in grado di fare il boot del sistema :-(. Purtroppo, in questi casi, non consco altre soluzioni se non cambiare chiavetta.}}
; 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 "?".
== Configurazione di DSL ==


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.
DSL � stato concepito come livecd, quindi monta il dispositivo da cui effettua il boot in <tt>/cdrom</tt>. Quindi anche nel nostro caso la chiavetta <tt>/dev/sda1</tt> sar� montata in <tt>/cdrom</tt>, e sar� '''non''' scrivibile. Rimontamola in lettura-scrittura:
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==
$ su 
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.
# mount -o remount,rw /cdrom


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".  
Per far si che all'avvio di DSL la chiavetta venga montata automaticamente in rw basta agguingere a <tt>/opt/bootlocal.sh</tt> il precedente comando di mount. Quindi non ci resta che salvare le impostazioni aprendo il pannello di controllo di DSL (sul Desktop) e selezionando in "Backup/Restore" '''sda1''' (''senza /dev/ !'') come dispositivo di backup.


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.
Potremo anche aggiungere a <tt>/opt/bootlocal.sh</tt> il comando per caricare la tastiera italiana:


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).
loadkeys it


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.
in tal modo non dovremo pi� passare al boot il paramentro <tt>lang=it</tt>.


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.  
Il bello � anche che se si scarica nuovo software (tramite ad esempio le estensions di DSL) e si salva nella home, poich� viene di default fatto un backup di tutta la home, ai successivi riavvi avremo il software gi� disponibile senza doverlo riscaricare.


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
Ora, normalmente, quando si effettua un backup delle impostazioni di DSL � necessario usare al boot l'opzione <tt>restore=sda1</tt>. Tuttavia nel nostro caso anche questo � superfluo perch� DSL cerca automaticamente un eventuale backup nello stesso dispositivo dal quale parte. Quindi all'avvio '''non dovremo far altro che premere <tt>INVIO</tt>''' e DSL caricher� le nostre impostazioni, tastiera italiana, e software aggiuntivo compresi ;-).


==Risolvere eventuali problemi con delle dipendenze==
In tal modo � possibile crearsi in pochi minuti una versione personalizzata di DSL da portarsi sempre dietro in una chiavetta assieme ai prorpi dati ;-).


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:
Se iniziate ad usare DSL una lettura alle FAQ � d'obbligo (dove troverete queste ed altre informazioni).
<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)
Happy Hacking !
</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.
== Links ==


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 ;-).
* [http://www.damnsmalllinux.org/ Homepage Damn Small Linux]
* [http://www.damnsmalllinux.org/wiki/index.php/Main_Page Wiki di Damn Small Linux]
* [http://www.damnsmalllinux.org/wiki/index.php/Frequently_Asked_Questions FAQ di Damn Small Linux]
* [http://wiki.debian.org/BootUsb Wiki Debian: Boot da USB]


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.
----
 
Autore: [[Utente:TheNoise|~ The Noise]] 05:14, Gen 8, 2006 (EST)
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 supponiamo di voler vedere se in debian c'� qualche programma per la gestione dei contenuti, e l'acronimo in inglese � "cms". Per fare questo possiamo usare le funzioni di ricerca di aptitude: per prima cosa digitiamo ''''/'''' per la ricerca della stringa "cms" nei nomi dei pacchetti.
 
Ora per� ci viene in mente che un cms non contiene necessariamente la stringa "cms" nel nome, quindi facciamo, con la stessa stringa, una ricerca nelle descrizioni dei pacchetti: digitiamo ancora ''''/'''' e inseriamo "~dcms". Aptitude ci mostra il primo risultato della ricerca: per vedere il successivo premiamo ''''n'''' oppure ''''\''''.
 
Diversamente possiamo usare il comando ''''l'''', che si usa allo stesso modo di ''''/'''' ma mostra tutti e soli i pacchetti corrispondenti alla ricerca, organizzati ad albero nel modo che abbiamo gi� visto.
 
== 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''.
128

contributi