DEPENDENCY

DESCRIZIONE:

Questo suggerimento è per principianti che installano pacchetti seguendo il libro BLFS per la primissima volta. Non è possibile installare dal libro BLFS dall'inizio alla fine. Prima o poi si incontrerà qualche pacchetto, che dipende da altri pacchetti che dipendono da ancora più pacchetti.
Questo hint aiuterà a tenere traccia di cosa si sta facendo e a che punto si è arrivati.

PREREQUISITI:

BLFS-BOOK-1.0.txt blfs-dependencies.tar.gz

SUGGERIMENTO:

Indice:

  1. Come lavorare con depsort
  2. Cosa c'è nel tarball
  3. Compilare depsort.c
  4. Pacchetti virtuali
  5. Dipendenze omesse
  6. Formato di deps.txt
  7. Estrazione delle dipendenze dal libro BLFS
  8. da fare

Come lavorare con depsort:

Il tarball http://www.abatz.de/linux/blfs-dependencies.tar.gz contiene:

deps.txt - una lista di pacchetti e le loro dipendenze (dal libro BLFS)
depsort - un programma che porta quelle dipendenze in ordine lineare

1. Ci sono due righe in “deps.txt” che bisogna editare prima dell'uso:Nella riga

mta sendmail-8.12.9 or postfix-2.0.7 or qmail-1.03 or exim-4.14

scegliere un MTA da installare e rimuovere gli altri (rimuovere anche gli 'or')

Nella riga

xine-lib-1-beta9 xfree86-4.3.0 alsa-0.9.2 esound-0.2.29 or arts-1.1 ….

scegliere o esound-0.2.29 o arts-1.1 e rimuovere l'altro

2. Adesso scrivere una lista di quei pacchetti dal libro BLFS che si sono già installati (un nome per riga) e salvarla come “inst.txt”. Se non si è ancora installato nulla di BLFS (ma solo LFS), creare un file vuoto, con:

>> inst.txt

3. Adesso scrivere una lista di pacchetti che si vuvole installare e salvarla come “wish.txt”. Per fare una lista di tutti i pacchetti in “deps.txt” eseguire:

cat deps.txt | awk '{print $1}' > wish.txt

(Comunque sarebbe meglio non farlo. C'è più chiarezza, se si installa un pacchetto - con le dipendenze - per volta.)

4. Poi eseguire:

./depsort

Questo produce un file chiamato “result.txt”, una lista di pacchetti che possono essere installati dall'inizio alla fine.

Cosa c'è nel tarball:

a risolvere le dipendenze aperte

Compilare depsort.c:

Eseguite:

make depsort

Pacchetti virtuali:

Ci sono alcuni nomi di pacchetto nell'elenco che non esistono: “mta”, “alsa” e “cvs-server”. Li ho inseriti, perché ci sono pacchetti nel libro BLFS che dipendono da “alsa” o da “un MTA dal capitolo 22”, e c'è un pacchetto chiamato “cvs-server” discusso nel libro.
Guardiamo “alsa”, “mta” e “cvs-server” come “pacchetti virtuali”. Essi non hanno tarball propri, soltanto dipendenze:
“alsa” dipende da 3 pacchetti: alsa-lib, alsa-utils e alsa-tools.
“mta” dipende da 1 dei 4 pacchetti: sendmail o postfix o qmail o exim. “cvs-server” dipende da 2 pacchetti: cvs e openssh.

Dipendenze omesse: :

Le seguenti dipendenze dal libro BLFS non sono comprese in questo hint:
- oss (perché ho preferito alsa, e comunque oss era una dipendenza opzionale)

Formato di deps.txt:

La prima parola di ogni riga è il nome del pacchetto da installare.
Le parole seguenti sono i nomi dei pacchetti dai quali dipende. Le parole devono essere separate da un solo spazio. Non sono ammesse spaziature in testa o in coda.

Estrarre dipendenze dal libro BLFS:

Sono necessari tre file: mkrawdeps1, mkrawdeps2, mkrawdeps3, (tutti impostati come eseguibili) e una copia del libro BLFS (versione txt) nella stessa cartella.
mkrawdeps1 ricerca nel libro le righe contenenti “depend on:” e riporta queste righe (compreso le cinque righe seguenti) in un file “rawdeps1.txt”.
Riporta anche i nomi dei pacchetti (in forma ridotta senza numero di versione) in un file “shortnames.txt”. Ed estrae i nomi completi dei pacchetti (con il numero di versione) dall'indice del libro salvandoli in “longnames.txt”.
E' necessario che gli errori vengano rimossi a mano da questi tre file. Ci sono delle righe interrotte, alcune piccole incoerenze tipo trattini “-” e sottolineature “_” nel nome dei pacchetti, e caratteri sporchi da rimuovere.
Il formato dei pacchetti nella sezione KDE differisce leggermente dal resto del libro. L'output di “mkrawdeps1” è alquanto confuso in questo punto. Anche questo deve essere corretto a mano.
E per favore non cancellare le lineette di separazione pacchetto “–”.
mkrawdeps2 successivamente legge il file rawdeps1.txt, prova ad aggiungere il numero di versione dal “longnames.txt” e salva il risultato in “rawdeps2.txt”.
E' necessario editare “rawdeps2.txt”, rimuovere i rimanenti errori e aggiungere i nomi dei pacchetti che lo script non ha trovato nel libro. (Si prega di aggiungere i separatori di linee “–” se si aggiungono nomi di pacchetto).
mkrawdeps3 successivamente legge il file rawdeps2.txt e lo riformatta come il programma “depsort” si aspetta: un nome di pacchetto e le sue dipendenze su una linea, separati da spazi. L'output è salvato in “rawdeps3.txt”, dove è ancora ordinato come nel libro.
Confrontare il contenuto di rawdeps3.txt con le dipendenze nel libro per un'ultima volta, dopodiché eseguire “sort | uniq” in “deps.txt”, ed eseguire ./depsort

DA FARE:

CAMBIAMENTI:

16-09-2003