Scritto da davidonzo il 17/06/2006, in OpenSource
ATTENZIONE!
L'articolo che stai leggendo è stato scritto 935 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
Come già detto qualche articolo fa, APT utilizza i repository per scaricare ed installare i pacchetti che di volta in volta vogliamo sulla nostra macchina.L'articolo che stai leggendo è stato scritto 935 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
Questi repository sono localizzati in un file di testo chiamato sources.list. Contenuto nella directory /etc/apt/. Aprendo il file si noteranno righe che reindirizzano a location remote. I pacchetti che installiamo in questi casi, vengono scaricati da altre macchine in rete. E' però possibile che, chi mette a disposizione un pacchetto *.deb per la nostra distribuzione, non abbia la possibilità di arrangiare un repository da farvi inserire nel sources.list.
In questi casi è molto probabile che vi ritroverete a scaricare direttamente un file *deb. Come trattarlo?
Se siete utenti schietti, potete installare il pacchetto con una sola riga di comando:
dpkg --install /paht/del/pacchetto.deb
Con questo comando il pacchetto *.deb saprà cosa fare di se stesso
. L'installazione andrà a buon fine a patto che le dipendenze siano soddisfatte.Il funzionamento di un pacchetto può infatti dipendere da altri pacchetti che installano librerie comuni ed indispensabili per il funzionamento di altri programmi.
Se le dipendenze non sono totalmente soddisfatte, potrebbe succedere che l'installazione parta, ma si blocchi a metà: nel momento in cui la dipendenza in questione risulta insoluta. E la cosa è abbastanza antipatica, perchè si va a sporcare il sistema con pacchetti installati a metà...
APT fornisce un buon supporto a tal proposito. Infatti, prescindendo dalla configurazione del processo di install del pacchetto, controlla a priori il soddisfacimento di tutte le condizioni necessarie per l'installazione.
Se qualche dipendenza va a vuoto, controlla automaticamente la possibilità di installare i file mancanti. In alternativa, non fa partire il processo di installazione, impedendo processi di install insoluti.
E' un gran vantaggio, non pensate?!
A questo punto ci si chiederà: "ma se ho il solo pacchetto *.deb scaricato direttamente sulla macchina, come faccio ad utilizzare il processo di installazione via APT?!"
La risposta è semplice: creiamo un repository locale!
Apriamo il terminale, e come prima cosa trasformiamoci in root
. Per farlo gridate a scuarciagola "per il potere di Grayskoollll!!!!" e digitate:sudo -s
Dopo aver convinto chi vi sta di fianco a ritirare l'istanza per l'interdizione legale, potete procedere come segue
.Per facilitare la cosa, faremo un esempio pratico, creando un repository locale per l'ultima versione di aMule, scaricata dal sito del buon Treviño. Dopo aver scaricato sul desktop il pacchetto messo a disposizione nel post linkato, per semplicità rinominiamolo:
mv /home/davide/Desktop/amule_2.1.3-3v1-2ubuntu1dapper3_i386.deb /home/davide/Desktop/amule_2.1.3.deb
Questo passiaggio lo potete evitare. Io l'ho fatto solo perchè in questo modo il post risulterà più leggibile
. E badate bene che il comando è dato in funzione della mia home, e del fatto che il file è stato scaricato sul Desktop dell'utente che uso abitualmente. Voi regolatevi di conseguenza.NB.: Tutte le operazioni da ora in poi verranno eseguite nella directory /root
A questo punto creiamo la directory che ospiterà i nostro pacchetto:
mkdir /root/pkgs
Spostiamo il pacchetto dal Desktop alla directory appena creata:
mv /home/davide/Desktop/amule_2.1.3.deb /root/pkgs
E facciamo uno scanning dei pacchetti *.deb della directory, localizzandoci nella directory /root
cd /root
dpkg-scanpackages pkgs/ /dev/null | gzip > pkgs/Packages.gz
** Packages in archive but missing from override file: **
amule
Wrote 1 entries to output Packages file.
dpkg-scanpackages pkgs/ /dev/null | gzip > pkgs/Packages.gz
** Packages in archive but missing from override file: **
amule
Wrote 1 entries to output Packages file.
Spieghiamo la sintassi:
- dpkg-scanpackages: è il comando per fare lo scanning dei *.deb
- pkgs/: è la directory che abbiamo scannerizzato
- /dev/null: sono le indicazioni di override. In pkgs avremmo potuto creare un file di override, dando indicazioni del nome, della priorità e della sezione. Questo avrebbe fatto si che tali coordinate sarebbero state usate prescindendo da quelle proprie del pacchetto. Usando invece /dev/null abbiamo deciso di non modificare il default del pacchetto.
- gzip > Packages.gz: serve per creare un file .gz con le indicazioni di installazione e tutte le altre info usate da APT.
gedit /etc/apt/sources.list
Ed aggiungiamo il repository
#Repository locale dei pacchetti contenuti in /root/pkgs/
deb file:/root pkgs/
deb file:/root pkgs/
Laciamo un update di apt, ed avremo il nostro nuovo repository disponibile

apt-get update
Adesso possiamo installare e disinstallare i pacchetti contenuti in /root/pkgs/ usando APT o Synaptic, come faremo per i pacchetti remoti.
A questo proposito, proprio Synaptic ci da la prova del nove: io avevo installato nel sistema l'ultimo aMule disponibile sui repository, ovvero la versione 2.1.0. Subito dopo l'update, aprendo Synaptic, vedo che è disponibile un aggiornamento di aMule, che fa riferimento proprio al pacchetto *.deb presente in locale.
Notate la stellina gialla sul check di installazione, ed il fatto che la versione installate è la 2.1.0, mentre ultima versione disponibile segna la 2.1.3. Versione che ad oggi non è disponibile sui repository di ubuntu, ma che ho disponibile su un mio personale repository
.L'esempio aiuta a capire anche quanto sia utile la cosa. I repository universe sono quelli gestiti dalla community, e NON supportati da Ubuntu. Contengono tutti i programmi che di solito usiamo quotidianamente sul pc, quindi potete immaginare quanto sia importante come fonte.
Essendo però gestito dalla community, spesso risulta difficile trovare aggiornamenti tempestivi. Ed è più facile che singoli avventori (come Trevino...) mettano a disposizione i loro *.deb, senza poterli caricare su un repository.
Con la procedura vista, possiamo gestire in maniera incrociata e coordinata, i pacchetti universe forniti dal team Ubuntu, ed i pacchetti (spesso più aggiornati) scaricabili dalla rete. Il controllo incrociato di APT, ci permette di non installare pacchetti obsoleti, mal funzionanti, con dipendenze non soddisfatte.
Il discorso, ovviamente, non può prescindere dal fatto che la fonte dei *.deb scaricati DEVE essere attendibile
. 






...




