Introduzione

Come descritto in questo thread del forum (http://forum.debianizzati.org/viewtopic.php?f=20&t=41968) con questa pagina si vuole aprire un progetto per capire meglio come funziona il sistema operativo Debian ed in particolare il suo gestore dei pacchetti ([| APT], Advanced Packaging Tool).


Quando si utilizza un sistema "misto", ossia installando pacchetti provenienti da repository di versioni differenti, il controllo del nostro sistema si farà più impegnativo; un punto fondamentale per non perdere la testa sarà quello di riconoscere la provenienza di ogni pacchetto relativa alla versione del repository. Si darà per sottinteso che si conosce la struttura dei repository di Debian.

Alcune applicazioni quali Apt-show-versions già permettono di reperire questo tipo di informazioni. Inoltre strumenti quali "apt-cache policy" e "aptitude versions" possono fornirci la stessa informazione a partire dalla versione dei pacchetti installati.

Dei test effettuati nel thread del forum citato all'inizio di questa introduzione hanno però dato dei risultati diversi in base al metodo utilizzato. Nasce così il progetto debuctio (gioco di parole fra deductio, derivazione, e deb, pacchetto per Debian; ossia, derivazione/provenienza di un pacchetto Debian, ovviamente posto come domanda ;-)) per carpire queste differenze ed eventualmente riscrivere un metodo per classificare i pacchetti in Debian, rispettivamente integrarlo in uno dei metodi già esistenti.


Chiunque fosse interessato al progetto non ha che da aggiungersi alla discussione qui o nel forum e riempire gli spazi di questa pagina wiki.

Roadmap

  1. Capire il funzionamento degli strumenti attualmente in grado di carpire la versione e dunque la provenienza dei pacchetti:
    • apt-show-versions [In Elaborazione]
    • apt-cache policy [Da incominciare]
    • aptitude versions [Da incominciare]
  2. Stabilire le differenze fra i vari comportamenti degli strumenti sopra citati (ammesso che ce ne siano) e scegliere quale potrebbe essere la soluzione più "logica" e dunque precisa per ottenere l'informazione ricercata [Da incominciare]
  3. Costruire uno script/strumento che permetta in modo semplice di giungere all'informazione voluta [Da incominciare]
  4. Pacchettizare lo script/strumento e/o [Da incominciare]
    • integrarlo in uno degli strumenti già esistenti se possibile (magari aptitude...) [Da incominciare]
    • proporlo nei repository di Debian come pacchetto a se stante [Da incominciare]


[] : Status

   

 : da incominciare

   

 : in elaborazione

   

 : completato

1. Funzionamento strumenti attuali

Apt-show-versions

Per ottenere il sorgente possiamo utilizzare "apt-get source" (aggiornando però il "sources.list" con il repository "deb-src") oppure scaricarlo dal sito -> http://www.debian.org/distrib/packages dopo averlo cercato.


Attualmente direi di basarci sulla versione 0.16 presente sia in testing che in unstable.


Dopo aver scaricato il sorgente potremo notare come lo script "apt-show-versions" sia uno script in perl che praticamente rappresenta l'intero programma; cerchiamo dunque di analizzarlo per capirne il funzionamento base.

Status pacchetti

Dopo il "bla bla bla" iniziale sembrerebbe che apt-show-versions peschi lo stato dei pacchetti direttamente da dpkg

# Path to dpkg status file
my $status_file = $opts{'status-file'} || "/var/lib/dpkg/status";

per vedere dunque qual è la versione installata del pacchetto in causa.