Installare software da repository Unstable in Debian Testing

category Debian, Linux voRia 13 gennaio 2008 17:30

Quante volte vi è capitato di aver bisogno di un pacchetto non ancora disponibile nei repository della vostra distribuzione ma solo in quelli più sperimentali o comunque “pericolosi”?

A me un sacco di volte… da quando ho sostituito (temporaneamente :asd: ) la mia cara vecchia Gentoo con Debian ne ho avuto la necessità sin da subito, a cominciare dall’ultima versione dei driver nvidia. Certo, in questo caso sarebbe stato possibile anche installarli a mano direttamente con l’installer ufficiale, ma preferisco affidarmi all’apt in qualsiasi occasione (nei limiti del possibile) in modo da tenere traccia di tutto il software installato sul mio pc.

Come fare quindi?

“Col pinning!” direte voi.

NO. :p

La tecnica del pinning generalmente funziona ed è ottima, ma a me da’ un leggero fastidio ritrovarmi millemila dipendenze aggiunte dal ramo unstable per l’installazione di un semplice pacchetto.

Da buon gentooista quale sono, preferisco invece compilarmi a manina il pacchetto partendo dai sorgenti prelevati dal repository unstable, in modo da “linkarlo” con le librerie installate dal ramo testing.

Ecco come fare.

Prima di tutto aggiungiamo la seguente linea al nostro file /etc/apt/sources.list:

## Debian Unstable - Sorgenti
deb-src http://ftp.it.debian.org/debian/ unstable main contrib non-free

seguito da un

apt-get update

Questo permetterà all’apt di scaricare i sorgenti del pacchetto che ci interessa dal repository unstable invece che da quello testing.

Creiamo quindi una directory di lavoro, ci spostiamo al suo interno e diamo il comando

apt-get source nomepacchetto

L’apt si prenderà cura di scaricare i sorgenti richiesti ed estrarli in una nuova directory (“nomepacchetto-versione”), pronti per essere ricompilati.

Tutto quello che ci resta da fare è spostarci all’interno di questa nuova directory e lanciare il comando

dpkg-buildpackage

che

  1. controlla se tutte le dipendenze richieste per la creazione del pacchetto sono installate.
  2. costruisce il pacchetto .deb e crea un nuovo archivio di sorgenti per una eventuale ridistribuzione.

Se dovesse mancare qualche dipendenza, sarà possibile installarla a mano oppure con un più automatico

apt-get build-dep nomepacchetto

Nella maggior parte dei casi si tratterà di librerie di sviluppo necessarie solo nella fase di compilazione del pacchetto ed è molto probabile che possiate anche rimuoverle dopo averlo creato; io le tolgo sempre, cerco di mantenere il sistema pulito evitando di avere pacchetti inutili installati (sono paranoico per quanto riguarda l’ordine sui miei hard disk :asd: )

Quando ‘dpkg-buildpackage’ avrà finito il proprio lavoro, nella directory di lavoro troverete il pacchetto pronto per essere installato con un

dpkg -i nomepacchetto.deb

Beh, fatto. Difficile? Penso proprio di no :)

Questo sistema funziona benissimo nel 99% dei casi, ma può capitare a volte di avere a che fare con un pacchetto che ha una dipendenza a sua volta disponibile solo nel ramo unstable. In questi casi bisogna prima ricostruire la dipendenza ed installarla, e poi si può procedere alla ricostruzione del pacchetto che ci interessa.

E se le dipendenze necessarie ma mancanti fossero più di una? Beh a questo punto conviene valutare se è il caso di ricompilarsi tutto il necessario oppure affidarsi semplicemente alla tecnica del pinning. ;)

Per quanto riguarda i driver nvidia, il mio prossimo articolo riguarderà proprio l’installazione del gruppo di pacchetti nvidia-graphics-drivers partendo dai sorgenti del ramo unstable.

feed icon 2 Commenti a “Installare software da repository Unstable in Debian Testing”

  1. Madrefoca Debian IceWeasel Debian IceWeasel 2.0.0.11 :: Debian GNU/Linux Debian GNU/Linux

    Perfetto questo l’aggiungo ai preferiti

  2. Madrefocaine! » Iceweasel 3 per Lenny WordPress WordPress 2.5.1

    [...] repository Lenny non è ancora disponibile quindi ho usato il metodo voRia per compilarlo da sorgente SID. L’unico problema che ho riscontrato è stata la mancanza [...]