最近在学tcl/tk和Expect ,折腾了一天才在linux上搭起环境。下面把查到的可行的方法记录下来。

第1步:使用root用户登录

第2步:复制安装文件
      
       在合适的位置创建一个文件夹,例如soft
       修改文件夹读写权限
       chmod 777 soft 

第3步:解压安装包
 
       把expect-5.43.0.tar.gz和tcl8.4.11-src.tar.gz和tk8.4.19-src.tar.gz复制到soft目录        下, 

       解压tcl8.4.11-src.tar.gz
       tar –xvf tcl8.4.11-src.tar.gz
       解压后将创建tcl8.4.11 文件夹

       解压expect-5.43.0.tar.gz
       tar –xvf expect-5.43.0.tar.gz
       解压后将创建expect-5.43 文件夹

       解压tk8.4.19-src.tar.gz

       tar -xvf tk8.4.19-src.tar.gz

       解压后将创建tk8.4.19文件夹

第4步:安装tcl
       进入/soft/tcl8.4.11/unix 目录
        a.执行sed -i "s/relid'/relid/" configure
        b.执行./configure --prefix=/expect
        c.执行make
        d.执行make install
        e.执行mkdir -p /tools/lib
        f.执行cp tclConfig.sh /tools/lib/
        g. 将/tools/bin目录export到环境变量
           tclpath=/tools/bin
           export tclpath 

第5步:安装tk

       进入/soft/tcl8.4.11/unix 目录

        ./configure --prefix=/usr --enable-shared

       make
       make install

第6步:安装Expect
        进入/soft/expect-5.43目录
        执行./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no
        如果最后一行提示:
        configure: error: Can't find Tcl private headers
        需要添加一个头文件目录参数
        --with-tclinclude=../tcl8.4.11/generic,即
        ./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no --with-                   tclinclude=../tcl8.4.11/generic
        ../tcl8.4.11/generic 就是tcl解压安装后的路径,一定确保该路径存在
        执行make
        执行make install
        编译完成后会生在/tools/bin内生成expect命令
        执行/tools/bin/expect出现expect1.1>提示符说明expect安装成功. 

 第7步:创建一个符号链接

        ln -s /tools/bin/expect /usr/bin/expect 
        查看符号连接
        ls -l /usr/bin/expect
        lrwxrwxrwx 1 root root 17 06-09 11:38 /usr/bin/expect -> /tools/bin/expect

        这个符号链接将在编写expect脚本文件时用到,例如在expect文件头部会指定用于执行该         脚本的shell
        #!/usr/bin/expect 

       安装包下载地址: