Expect pakken inneholder verktøy for å automatisere, via skriptede dialoger, interaktive applikasjoner som f.eks telnet, ftp, passwd, fsck, rlogin, og tip. Expect er også nyttig for å teste disse samme applikasjoner i tillegg til å lette alle slags oppgaver som er uoverkommelige vanskelig med noe annet. DejaGnu rammeverket er skrevet i Expect.
Expect forventer at PTY-er skal fungere. Kontroller at PTY-ene fungerer riktig inne i chroot miljøet ved å utføre en enkel test:
python3 -c 'from pty import spawn; spawn(["echo", "ok"])'
Denne kommandoen skal sende ut ok
. Hvis i stedet utdataen inkluderer
OSError: out of pty devices
, da
er ikke miljøet satt opp for ordentlig PTY operasjon. Du må gå ut
av chroot miljøet, les Section 7.3,
“Forberede det virtuelle kjernefilsystemer” igjen, og sørg for
at devpts
filsystemet (og andre
virtuelle kjernefilsystemer) er montert på riktig måte. Gå deretter
inn i chroot miljøet igjen ved å følge Section 7.4, “Gå inn i
Chroot miljøet”. Dette problemet må løses før du fortsetter,
ellers vil testpakkene som krever Expect (for eksempel testpakkene
til Bash, Binutils, GCC, GDBM, og selvfølgelig Expect seg selv) vil
mislykkes katastrofalt, og andre subtile brudd kan også skje.
Gjør nå noen endringer for å tillate pakken med gcc-14.1 eller nyere:
patch -Np1 -i ../expect-5.45.4-gcc14-1.patch
Forbered Expect for kompilering:
./configure --prefix=/usr \ --with-tcl=/usr/lib \ --enable-shared \ --disable-rpath \ --mandir=/usr/share/man \ --with-tclinclude=/usr/include
Betydningen av konfigureringsalternativene:
--with-tcl=/usr/lib
Denne parameteren er nødvendig for å fortelle configure hvor tclConfig.sh skriptet er plassert.
--with-tclinclude=/usr/include
Dette forteller Expect eksplisitt hvor du finner Tcls interne deklarasjoner.
Bygg pakken:
make
For å teste resultatene, utsted:
make test
Installer pakken:
make install ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib