dal 2015 - visita n. 638
Seminario.09
Seminario.09

 

Pacchetti (parte 1)

Il processo di installazione non si esaurisce con la memorizzazione del sistema operativo e del softwatre di base sulle partizioni prescelte dell'hard disk, ma continua in seguito con l'aggiunta o con la sostituzione di software più moderno. Un tale lavoro di manutenzione, effettuato chiaramente con i diritti di amministratore, viene agevolato dalla presenza di opportuni strumenti che provvedono al controllo di tutta una serie di operazioni intermedie indispensabili affinchè il nuovo software, pacchettizzato (file con suffisso .deb>), arrivi correttamente a destinazione.

Per le distribuzioni Debian e derivate (Knoppix, Kanotix, Mepis, Xandros, Lindows/Linspire, Lycoris,...) sono disponibili, per chi inizia, almeno due possibilità: dpkg e apt.
Sicuramente più popolare e più immediato nell'uso, apt (advanced package tool) sfrutta il sottostante livello costituito da dpkg (debian package).

Occorre tenere presente che tutte le distribuzioni Debian si sviluppano seguendo un percorso a tre stadi: nascita (unstable), maturazione (testing), rilascio (stable).

Una curiosità delle distribuzioni Debian è data dai nomi ufficiali che vengono loro assegnati, sino ad ora sono stati scelti nomi appartenenti ai personaggi del film Toy story.
La unstable si chiamerà sempre Sid, ma avrà un nuovo nome quando diverrà testing, e con lo stesso passerà a stable.
I nomi delle ultime distribuzioni stabili di Debian sono: Potato (ver. 2.2), Woody (ver. 3.0) e Sarge (ver. 3.1). L'attuale testing si chiama Etch.


Tutti i pacchetti Debian, classificati nelle tre classi di sviluppo, risiedono su dei server chiamati repository dai quali è possibile scaricarli ed installarli rispettandone le dipendenze.

Il file /etc/apt/sources.list contiene l'elenco di repository che viene usato dalla propria macchina.



APT

L'apt-system e' un insieme di script che si appoggia al comando dpkg e che si propone di facilitare la gestione di pacchetti e dipendenze nei sistemi Debian GNU/Linux. Notoriamente chi prende confidenza con Debian difficilmente sara' tentato di cambiare distribuzione, e questo anche grazie a questo splendido set di tools. Senza la pretesa della completezza questa brevissima panoramica ha lo scopo di fornire un piccolo vademecum per mantenere aggiornato il nostro sistema operativo.

apt-setup

serve per aggiungere/aggiornare le fonti da cui scaricare i pacchetti

Il sistema di gestione dei pacchetti usa un suo database per tenere traccia di quali pacchetti sono installati, quali non lo sono e quali sono disponibili per l'installazione. Il programma apt-get usa questo database per capire come installare i pacchetti richiesti dall'utente e per scoprire quali ulteriori pacchetti sono necessari per farli funzionare correttamente.

apt-get update

aggiorna le informazioni disponibili sui pacchetti, con riferimento ai repository citati in /etc/apt/sources.list. Da utilizzare, con una certa regolarità, prima di procedere ad aggiornamenti con apt-get install oppure apt-get upgrade, questo comando mantiene il sistema informato su possibili aggiornamenti dei pacchetti, in particolare, sugli aggiornamenti per la sicurezza.

apt-get install [pkg_1, pkg_2,... pkg_n]

e' il comando che ci permette di installare/aggiornare uno o piu' pacchetti precompilati, tentando (e riuscendoci!) di risolvere automaticamente tutte le dipendenze richieste.

apt-get install [pkg_name] -s

E' anche possibile simulare (con output su video) l'installazione di un pacchetto per controllare se ciò che stiamo installando/aggiornando modifichera' altri pacchetti già installati.

apt-get remove [pkg_1, pkg_2,... pkg_n]

e' l'esatto opposto del comando apt-get install.

apt-cache search [stringa]

usando questo comando possiamo cercare pacchetti in base al nome, alla descrizione, ecc ...

apt-cache show [pkg_name]

questo comando visualizza una breve descrizione del pacchetto da noi richiesto, fornendo versione, uso, dipendenze e altre utili informazioni.

apt-get source [pkg_name]
apt-get source [pkg_name] --compile

il primo comando da utilizzare nel caso volessimo installare i sorgenti di un pacchetto.
il secondo comando e' il passo finale per la compilazione di un pacchetto .deb, da lanciare dalla stessa directory in cui si sono scaricati i sorgenti da compilare.
NOTA BENE: i sorgenti cosi' scaricati, una volta compilati, daranno origine ad un pacchetto .deb che andra' a sua volta installato!

apt-get build-dep [pkg_name]

questo e' un pacchetto fondamentale, specie se si lavora molto con i sorgenti. Si occupa di soddisfare le dipendenze del pacchetto che andremo a compilare dopo aver eseguito apt-get source.

apt-cdrom

aggiunge alle fonti per i pacchetti il contenuto di un CD debian.

apt-get upgrade

aggiorna i pacchetti installati sul nostro sistema, se sono disponibili versione piu' recenti. Da utilizzare con molta cautela perchè può coinvolgere parecchio software e provocare un certo grado di interattività con l'utente (potrebbe essere necessario rispondere a delle domande poste prima di effettuare delle scelte).

apt-get dist-upgrade

e' simile al precedente, ma aggiorna anche scripts di configurazione ed altro, valgono le stesse raccomandazioni.

apt-get clean

quando i pacchetti vengono scaricati ne viene memorizzata una copia in /var/cache/apt/archive/ e quindi col passare del tempo questa directory tende a ingrandirsi notevolmente. Usare questo comando per cancellare il contenuto della directory ed evitare una cancellazione manuale che altrimenti disorienterebbe il sistema apt che continuerebbe a credere di avere una copia dei pacchetti in locale.

apt-get autoclean

da non confondere con il precedente, procede ad eliminare da /var/cache/apt/archive/ solo le versioni obsolete dei vari pacchetti presenti.


DPKG

Costituisce il fondamento del sistema di gestione dei pacchetti Debian e permette la loro manipolazione diretta. Se sul disco fisso c'è un pacchetto di nome myprog-1.2.-1.deb e si desidera installarlo basta dare il comando:

dpkg -i myprog-1.2.-1.deb

Anche un pacchetto .deb scaricato da internet può essere installato direttamente in questo modo.

Per rimuovere lo stesso programma è sufficiente indicarne il nome con il comando:

dpkg -r myprog

che rimuove unicamente i binari (il programma stesso) ed i relativi script di avvio, ma non cancella nessuno degli eventuali file di configurazione. Reinstallando il programma in un secondo momento, verranno quindi usati i file di configurazione esistenti, evitando di doverli ricreare da zero. La rimozione (disinstallazione) di un pacchetto richiede che nessun altro pacchetto dipenda da quello che vogliamo rimuovere, nel qual caso dovremo prima rimuovere quelli da esso dipendenti.

Per ottenere l'eradicazione totale del programma (Purging): binari, script di avvio, file di configurazione, tutto, è necessario digitare:

dpkg -P myprog

Questo comando si occupa di rimuovere qualsiasi cosa legata al programma, ma nessun altro pacchetto deve dipendere da ciò che vogliamo rimuovere, altrimenti occorrerà rimuovere prima i pacchhetti dipendenti. Ovviamente in caso di reinstallazione si dovrà procedere ad una nuova configurazione.

dpkg -l myprog

Mostra informazioni su versione e stato di un pacchetto installato. Ad esempio, nel caso di nasm potrebbe essere visualizzato quanto segue:

Desiderato=sconosciUto/Installato/Rimosso/P:eliminato/H:bloccato
| Stato=Non/Installato/file Config./U:spacchett./conf. Fallita/H:inst.parzial.
|/ Err?=(nessuno)/H:bloc./necess.Reinst./X=entrambi (Stato,Err: maiusc.=grave)
||/ Nome            Versione        Descrizione
+++-===============-===============-==============================================
ii  nasm            0.98.38-1.2     General-purpose x86 assembler

Nella tabella i primi tre caratteri "ii " informano sullo Stato dell'installazione e su eventuali Errori occorsi durante la stessa. Segue il nome dell'applicativo, la versione ed una breve descrizione.
Omettendo il nome del programma è possibile ottenere la lista completa di tutti i pacchetti installati.


dpkg -L myprog

Elenca tutti i files relativi al pacchetto installato. Se si desidera scoprire dove sia stato posizionato tutto il materiale relativo ad un determinato pacchetto questo è il comando per scoprirlo. Sempre nel caso di nasm si potrebbe vedere quanto segue (abbreviato per motivi di spazio):

......
/usr/bin/nasm
/usr/bin/ndisasm
/usr/bin/rdfdump
/usr/bin/ldrdf
......
/usr/share/doc/nasm
/usr/share/doc/nasm/AUTHORS
/usr/share/doc/nasm/README
/usr/share/doc/nasm/html/nasmdoc0.html
/usr/share/doc/nasm/html/nasmdoc1.html
/usr/share/doc/nasm/html/nasmdoc2.html
......
/usr/share/doc/nasm/examples/a32offs.asm
/usr/share/doc/nasm/examples/absolute.asm
/usr/share/doc/nasm/examples/aoutso.asm
/usr/share/doc/nasm/examples/aouttest.asm
/usr/share/doc/nasm/examples/aouttest.c
......
/usr/share/doc-base/nasm-manual
......
/usr/bin/rdf2com
......



dpkg -S fileXYZ

Trova il pacchetto che contiene il file fileXYZ. Molto utile se si desidera conoscere a quale pacchetto è legato un determinato file.

dpkg -s myprog

Visualizza un quadro riassuntivo del pacchetto installato. Per esempio nel caso di nasm si avrà:

Package: nasm
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 2776
Maintainer: Christian Kesselheim 
Architecture: i386
Version: 0.98.38-1.2
Depends: libc6 (>= 2.3.2.ds1-21)
Description: General-purpose x86 assembler
 Netwide Assembler.  NASM will currently output flat-form binary files,
 a.out, COFF and ELF Unix object files, and Microsoft 16-bit DOS and
 Win32 object files.
 .
 Also included is NDISASM, a prototype x86 binary-file disassembler
 which uses the same instruction table as NASM.
 .
 NASM is released under the GNU Lesser General Public License (LGPL).




Alien

Il formato utilizzato da Debian non è, purtroppo, l'unico disponibile per archiviare pacchetti per Linux. Uno dei più noti, e storicamente uno dei primi, è il formato rpm, utilizzato nativamente da molte distribuzioni (RedHat, Mandrake/Mandriva, Suse, ...). Questo formato dispone dei suoi strumenti di installazione, il più noto dei quali si chiama proprio rpm (red-hat package manager).
Quando si utilizza una distribuzione Linux, è quantomeno fastidioso e non molto raccomandato dover mescolare applicazioni installate a partire da archivi in formato diverso da quello che si usa normalmente. Ciò proprio perché non è più possibile tenere traccia, in un modo univoco, della posizione dei file appartenenti a ogni pacchetto (senza contare le altre conseguenze).

Fortunatamente vengono in aiuto i programmi di conversione che permettono di trasformare un archivio da un formato a un altro, anche se non sempre funzionano perfettamente. A questi si affiancano poi degli applicativi che permettono di ispezionare il contenuto di file impacchettati in vari formati, e di estrarne quello che si desidera.

Alien è un programma che consente di convertire un pacchetto archiviato in un altro formato di archiviazione. Precisamente, è in grado di generare archivi in formato Debian, Red Hat, Stampede e Slackware, a partire da questi formati e anche da un semplice archivio tar+gzip. Non è in grado di gestire i pacchetti sorgenti. L'eseguibile che compie tutto il lavoro è alien, e la sintassi per il suo utilizzo è mostrata nello schema seguente:

alien --to-deb [<opzioni>] <file-da-convertire>...
alien --to-rpm [<opzioni>] <file-da-convertire>...
alien --to-tgz [<opzioni>] <file-da-convertire>...
alien --to-slp [<opzioni>] <file-da-convertire>...


Alien ha la necessità di conoscere soltanto in quale formato finale occorre produrre la conversione. Il tipo di archivio sorgente viene individuato automaticamente, probabilmente in base all'estensione usata nel nome del file. Se con le opzioni non si specifica in quale formato convertire, si ottiene un archivio Debian, per esempio:

alien file-da-convertire.rpm

genera automaticamente il corrispondente pacchetto deb. Ovviamente è possibile anche la conversione in senso opposto.
Una volta ottenuto il pacchetto deb basta usare il comando dpkg -i, già visto in precedenza, per procedere alla effettiva installazione dello stesso.






Pacchetti (parte 1)
Applicativi (parte 3)
Installazione (parte 4)


Masterizzare
Pacchetti Debian
Linux Howto - 2


Cap09.pdf
Lucidi 09 PDF
PilloLinux_apt



Tutti sono buoni a compatire le sofferenze di un amico, ma ci vuole un'anima veramente bella per godere dei successi di un amico.
Oscar Wilde

Valid CSS!
pagina generata in 0.001 secondi