Le paquet Expect contient des outils pour automatiser, via des dialogues scriptés, des applications interactives comme telnet, ftp, passwd, fsck, rlogin et tip. Expect est aussi utile pour tester ces mêmes applications et faciliter toutes sortes de tâches qui sont trop compliquées avec quoi que ce soit d'autre. Le cadre de tests DejaGnu est écrit en Expect.
Expect a besoin de PTY pour fonctionner. Vérifiez que les PTY fonctionnent correctement dans l'environnement chroot en effectuant un simple test :
python3 -c 'from pty import spawn; spawn(["echo", "ok"])'
Cette commande devrait renvoyer ok
. Sinon, si la sortie contient
OSError: out of pty devices
,
alors l'environnement n'est pas configuré pour utiliser des PTY.
Vous devrez sortir de l'environnement chroot, relire Section 7.3,
« Préparer les systèmes de fichiers virtuels du
noyau » et vous assurer que le système de fichiers
devpts
(et les autres systèmes de
fichiers virtuels du noyau) est monté correctement. Ensuite, entrez
de nouveau dans l'environnement chroot en suivant Section 7.4,
« Entrer dans l'environnement chroot ». Ce problème
doit être résolu avant de continuer, ou les suites de tests qui
nécessitent Expect (par exemple celles de Bash, Binutils, GCC, GDBM
et bien sûr Expect lui-même) échoueront de manière catastrophique
et d'autres problèmes subtiles pourraient apparaître.
Maintenant, effectuez quelques changements pour permettre au paquet de construire avec gcc-14.1 ou supérieur :
patch -Np1 -i ../expect-5.45.4-gcc14-1.patch
Préparez la compilation d'Expect :
./configure --prefix=/usr \ --with-tcl=/usr/lib \ --enable-shared \ --disable-rpath \ --mandir=/usr/share/man \ --with-tclinclude=/usr/include
Voici la signification des options de configuration :
--with-tcl=/usr/lib
Ce paramètre est requis pour dire à configure où le script tclConfig.sh se trouve.
--with-tclinclude=/usr/include
Cela dit explicitement à Expect où trouver les en-têtes internes de Tcl.
Construisez le paquet :
make
Pour tester les résultats, exécutez :
make test
Installez le paquet :
make install ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib