Expect 软件包包含通过脚本控制的对话,自动化 telnet,ftp,passwd,fsck,rlogin,以及 tip 等交互应用的工具。Expect 对于测试这类程序也很有用,它简化了这类通过其他方式很难完成的工作。DejaGnu 框架是使用 Expect 编写的。
准备编译 Expect:
./configure --prefix=/usr \ --with-tcl=/usr/lib \ --enable-shared \ --mandir=/usr/share/man \ --with-tclinclude=/usr/include
配置选项的含义:
--with-tcl=/usr/lib
需要使用该选项告知 configure 配置脚本 tclConfig.sh 的位置。
--with-tclinclude=/usr/include
该选项显式指定查找 Tcl 内部头文件的位置。
构建该软件包:
make
我们认为,本节中 Expect 的测试套件是关键的。无论如何都不要跳过测试过程。
运行命令以测试编译结果:
make test
如果有测试失败并输出 “The system has no more ptys. Ask your system
administrator to create more
”, 这说明您没有正确挂载
devpts
文件系统。您需要退出 chroot
环境,再次阅读第 7.3 节 “准备虚拟内核文件系统”,并确认
devpts
文件系统 (以及其他虚拟内核文件系统)
已被正确挂载。之后按照第 7.4 节 “进入 Chroot 环境”重新进入
chroot 环境。在继续构建之前,必须解决这一问题。
安装该软件包:
make install ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib