Prerequisiti
Il sistema Linux che avrà il compito di supportare la costruzione di LFS deve avere già installato il seguente software con almeno le versioni indicate. Questo non dovrebbe essere un problema per la maggior parte delle distribuzioni moderne. Da notare, inoltre, che molte distribuzioni metteranno gli header del software in pacchetti separati, spesso nella forma package-name-devel oppure package-name-dev. Assicurarsi che anche questi siano installati se la distribuzione usata li fornisce.
Versione Minima | Versione Usata | Annotazioni |
---|---|---|
Bash-3.2 | bash 4.2.37 | /bin/sh è un link simbolico a bash |
Binutils-2.17 | Binutils 2.22 | Non sono state verificate versioni > 2.23.2 |
Bison-2.3 | bison 2.5 | /usr/bin/yacc è un link a bison o uno script che esegue bison |
Bzip2-1.0.4 | bzip2 1.0.6 | |
Coreutils-6.9 | Coreutils 8.13 | |
Diffutils-2.8.1 | diff 3.2 | |
Findutils-4.2.31 | find 4.4.2 | |
Gawk-4.0.1 | GNU Awk 4.0.1 | /usr/bin/awk è un link a gawk |
GCC-4.1.2 | gcc 4.7.2 | oppure C++ o g++. Non sono state verificate versioni > 4.8.1 |
Glibc-2.5.1 | EGLIBC 2.13-38 | Non sono state verificate versioni > 2.18 |
Grep-2.5.1a | grep 2.12 | |
Gzip-1.3.12 | gzip 1.5 | |
Linux Kernel-2.6.32 | Linux 3.2.0-4-686-pae | |
M4-1.4.10 | m4 1.4.16 | |
Make-3.81 | Make 3.81 | |
Patch-2.5.4 | patch 2.6.1 | |
Perl-5.8.8 | Perl 5.14.2 | |
Sed-4.1.5 | sed 4.2.1 | |
Tar-1.18 | tar 1.26 | |
Texinfo-4.9 | Texinfo 4.13 | |
Xz-5.0.0 | xz 5.1.0alpha |
Come si vede, a seconda delle distribuzioni, il nome di qualche pacchetto può avere un nome leggermente differente, come nel caso di gcc. Per evitare confusione e per accelerare il processo di verifica si può utilizzare il seguente script che analizza il sistema alla ricerca dei pacchetti interessati e fornisce in output una lista con le relative versioni. Lo stesso script, inoltre, tenta di eseguire la compilazione con g++ di un brevissimo programma in linguaggio c e restituisce un messaggio di OK se la compilazione va a buon fine.
Per utilizzare lo script procedere come indicato:
chmod +x version-check
./version-check
ls -l /bin/shproduce, nel mio sistema, l'espressione:
... /bin/sh -> /bin/dashrivelando che sh punta alla shell dash, predefinita in Debian. Per correggere la situazione eseguo come utente root:
ln -sfv /bin/bash /bin/she verifico che si ottenga l'espressione:
... /bin/sh -> /bin/bash
ls -l /usr/bin/yaccproduce, nel mio sistema, l'espressione:
... /usr/bin/yacc -> /etc/alternatives/yaccLa verifica con il comando:
cat /etc/alternatives/yaccproduce il listato seguente:
#! /bin/sh exec '/usr/bin/bison' -y "$@"e conferma, come ci si aspetta, che lo script esegue il comando bison.
ls -l /usr/bin/awkproduce, nel mio sistema, l'espressione:
... /usr/bin/awk -> /etc/alternatives/awkPer correggere la situazione eseguo come utente root:
ln -sfv /usr/bin/gawk /usr/bin/awke verifico che si ottenga l'espressione:
... /usr/bin/awk -> /usr/bin/gawk
I mali non vanno mai velati.
Proverbio