本软件包和随后的两个软件包,都是为了运行 GCC 和 Binutils 的测试套件而安装的。这看起来有点多余,但我们觉得,确信重要工具能工作,这种感觉很舒服。
首先下载tcl 源代码tcl8.5a4-src.tar.tar 。下载地址:
http://www.tcl.tk/software/tcltk/downloadnow85.html
为编译 Tcl 做准备:
cd unix
./configure --prefix=/usr/tcl
|
这里—prefix= 指定了tcl 下一步的安装目录。
编译软件包:
make
|
软件包自带测试套件,能执行一些测试,以确定它是否编译正确。如果你想运行测试套件,执行下面的命令:
TZ=UTC make test
|
有时,软件包的测试套件会产生错误。你可以参考一下LFS Wiki(http://wiki.linuxfromscratch.org/ 上其他人的结果,本书中的所有测试都可以在那里找到结果。
安装软件包:
make install
|
安装完毕以后,进入 tcl 源代码的根目录,把子目录 unix 下面的 tclUnixPort.h copy 到子目录 generic 中。暂时不要删除 tcl 源代码,因为 expect 的安装过程还需要用。
下载Expect 的地址:http://expect.nist.gov/src/
我使用的版本是expect-5.39.0.tar.gz 。
另外还需要下载补丁:
http://www.linuxfromscratch.org/patches/lfs/5.0/expect-5.39.0-spawn.patch
首先打补丁:
patch -Np1 -i ../expect-5.39.0-spawn.patch
|
它修正了Expect 中的一个bug ,这个bug 会使GCC 的测试套件运行时产生假错误。
为编译 Expect 做准备:
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-x=no |
配置参数的意思是:
· --with-tcl=/usr/tcl/lib : 确保配置脚本找到临时工具目录中的Tcl ,我们不希望它使用主系统中可能存在的tcl.
· --with-x=no : 告诉配置脚本,不要查找 Tk (Tcl 的 GUI 组件) 或 X 窗口系统库,这两个都有可能存在于主系统中。
· -with-tclinclude :帮助脚本找到所需要的tcl 头文件。
编译软件包:
make
|
本软件包自带测试套件,可以执行一系列测试,以确定是否正常编译。然而,第五章里运行Expect 的测试套件总是出些莫名其妙的错。因此,当你看到这里出错时,不要奇怪,很正常。如果你想运行测试套件,执行下面的命令:
make test
|
安装:
make install
|
现在你可以删除 Tcl 和 Expect 的源码目录了。
链接:
Linux下通过EXPECT脚本自动执行ssh远程连接
Linux 脚本编写基础