8.17. Expect-5.45.4

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.

Temps de construction approximatif: 0,2 SBU
Espace disque requis: 3,9 Mo

8.17.1. Installation d'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

8.17.2. Contenu d'Expect

Programme installé: expect
Bibliothèque installée: libexpect5.45.4.so

Descriptions courtes

expect

Communique avec les autres programmes interactifs selon un script

libexpect-5.45.4.so

Contient des fonctions qui permettent à Expect d'être utilisé comme une extension Tcl ou directement à partir du langage C ou du langage C++ (sans Tcl)