8.17. Expect-5.45.4

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.

Omtrentlig byggetid: 0.2 SBU
Nødvendig diskplass: 3.9 MB

8.17.1. Installasjon av 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

8.17.2. Innhold i Expect

Installert program: expect
Installert bibliotek: libexpect5.45.4.so

Korte beskrivelser

expect

Kommuniserer med andre interaktive programmer iht. til et skript

libexpect-5.45.4.so

Inneholder funksjoner som gjør at Expect kan brukes som en Tcl utvidelse eller brukes direkte fra C eller C++ (uten Tcl)