O pacote Expect contém ferramentas para automatizar, via diálogos com script, aplicativos interativos, tais como o telnet, ftp, passwd, fsck, rlogin e tip. Expect também é útil para testar esses mesmos aplicativos, bem como para facilitar todos os tipos de tarefas que são proibitivamente difíceis com qualquer outra coisa. A estrutura subjacente da DejaGnu é escrita em Expect.
Expect precisa de PTYs para funcionar. Verifique se os PTYs estão funcionando corretamente dentro do ambiente chroot realizando um teste simples:
python3 -c 'from pty import spawn; spawn(["echo", "ok"])'
Esse comando deveria gerar ok
.
Se, em vez disso, a saída gerada incluir OSError: out of pty devices
, então o
ambiente não está configurado para operação adequada de PTY. Você
precisa sair do ambiente chroot, ler Seção 7.3,
“Preparando Sistemas de Arquivos Virtuais do Núcleo” novamente
e garantir que o sistema de arquivos devpts
(e outros sistemas de arquivos virtuais
do núcleo) foi montado corretamente. Em seguida, entre novamente no
ambiente chroot seguindo Seção 7.4, “Entrando no
Ambiente Chroot”. Esse problema precisa ser resolvido antes de
continuar ou as suítes de teste que exigem o Expect (por exemplo,
as suítes de teste do Bash, Binutils, GCC, GDBM e, com certeza, a
próprio Expect) falharão catastroficamente e outras falhas sutis
possivelmente também aconteçam.
Agora, faça algumas mudanças para permitir o pacote com gcc-14.1 ou posterior:
patch -Np1 -i ../expect-5.45.4-gcc14-1.patch
Prepare Expect para compilação:
./configure --prefix=/usr \ --with-tcl=/usr/lib \ --enable-shared \ --disable-rpath \ --mandir=/usr/share/man \ --with-tclinclude=/usr/include
O significado das opções do configure:
--with-tcl=/usr/lib
Esse parâmetro é necessário para dizer ao configure onde o script tclConfig.sh está localizado.
--with-tclinclude=/usr/include
Isso explicitamente diz a Expect onde encontrar os cabeçalhos internos da Tcl.
Construa o pacote:
make
Para testar os resultados, emita:
make test
Instale o pacote:
make install ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib