linux from scratch error “Estes programas críticos estão faltando ou são muito antigos: gawk”

0

Estou seguindo a versão 8.0 do livro "Linux from Scratch" e cheguei à seção (5.7. Glibc-2.25). Ao tentar configurar glibc , recebo este erro:

These critical programs are missing or too old: gawk

quando escrevo gawk no terminal, recebo este resultado:

Command 'gawk' is available in '/usr/local/bin/gawk'
The command could not be located because '/usr/local/bin' is not included in the PATH environment variable.
gawk: command not found

Anteriormente no livro da seção 4.5, na página 31, dizia:

Create the .bashrc file now:

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

que eu fiz.

Atualização:

Executando o script version-check.sh da seção 2.2 do livro como usuário lfs dá:

bash, version 4.3.46(1)-release  
/bin/sh -> /bin/bash
Binutils: (GNU Binutils for Ubuntu) 2.27
version-check: line 10: bison: command not found
/usr/bin/yacc -> /usr/bin/bison
bzip2,  Version 1.0.6, 6-Sept-2010.
Coreutils:  8.25
diff (GNU diffutils) 3.3
find (GNU findutils) 4.7.0-git
version-check: line 22: gawk: command not found
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
g++ (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
(Ubuntu GLIBC 2.24-3ubuntu1) 2.24
grep (GNU grep) 2.25
gzip 1.6
Linux version 4.8.0-41-generic (buildd@lgw01-18) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #44-Ubuntu SMP Fri Mar 3 15:27:17 UTC 2017
m4 (GNU M4) 1.4.17
GNU Make 4.1
GNU patch 2.7.5
Perl version='5.22.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.29
version-check: line 42: makeinfo: command not found
xz (XZ Utils) 5.1.0alpha
g++ compilation OK

mas executando o mesmo script que o usuário root fornece:

bash, version 4.3.46(1)-release
/bin/sh -> /bin/bash
Binutils: (GNU Binutils for Ubuntu) 2.27
bison (GNU Bison) 2.3
/usr/bin/yacc -> /usr/bin/bison
bzip2,  Version 1.0.6, 6-Sept-2010.
Coreutils:  8.25
diff (GNU diffutils) 3.3
find (GNU findutils) 4.7.0-git
GNU Awk 4.0.1
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
g++ (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
(Ubuntu GLIBC 2.24-3ubuntu1) 2.24
grep (GNU grep) 2.25
gzip 1.6
Linux version 4.8.0-41-generic (buildd@lgw01-18) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #44-Ubuntu SMP Fri Mar 3 15:27:17 UTC 2017
m4 (GNU M4) 1.4.17
GNU Make 4.1
GNU patch 2.7.5
Perl version='5.22.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.29
texi2any (GNU texinfo) 6.3
xz (XZ Utils) 5.1.0alpha
g++ compilation OK

Parece-me que é porque /usr/local/bin não está incluído na variável de ambiente PATH, mas o livro não disse para adicioná-lo.

O inglês não é minha língua materna.

    
por Amr Nasser 15.03.2017 / 15:30

1 resposta

0

É o primeiro passo para criar toolchain, então seu ambiente é altamente dependente de seu sistema operacional host.

No capítulo 2.2 Requisitos de Sistema do Host existem dois scripts:

  • version-check.sh - que imprime versões de todos os pacotes importantes para o lfs
  • library-check.sh - para checar gmp, mpfr e mpc libs

Você executou os dois e verificou os resultados em relação às versões fornecidas no livro?

Porque o erro que você recebe:

These critical programs are missing or too old: gawk

é tão simples como é - seu sistema operacional host tem um% antigo gawk .

EDITAR: Obrigado pela atualização. Portanto, gawk version no seu sistema operacional host está OK. Mas o problema ainda é o seu sistema operacional hospedeiro - por alguma razão estranha, alguns pacotes são inacessíveis para o usuário normal (lfs), então o sistema operacional host não atende aos requisitos do sistema. Não há nada no lado do lfs para consertar. Você tem que consertar seu sistema operacional host, talvez reinstalar esses pacotes?

    
por 15.03.2017 / 20:52