酆都城主

博客园 首页 联系 订阅 管理

首先下载expect5.45.3.tar.gz和tcl8.4.20-src.tar.gz安装包  

链接: https://download.csdn.net/download/cdpc_xiao_wei/12720586

expect依赖tcl,首先安装tcl

一、TCL安装

  • 解压 
    tar -zxvf tcl8.4.20-src.tar.gz

     

  • 安装
cd tcl8.4.20/unix
./configure --prefix=/usr/local/tcl --enable-shared
make
make install
  • tclUnixPort.h 复制到generic
    cp /usr/local/tcl8.4.20/unix/tclUnixPort.h /usr/local/tcl8.4.20/generic/

二、安装expect

  • 解压
tar xfvz expect5.45.3.tar.gz
  • 安装
cd expect5.45.3
./configure --prefix=/usr/local/expect --with-tcl=/usr/local/tcl/lib --with-tclinclude=/usr/local/tcl8.4.20/generic
make
make install
  • 创建软连接
ln -s /usr/local/tcl/bin/expect /usr/local/expect/bin/expect
ln -s /usr/local/expect/bin/expect /bin/expect

 

三、便于多个服务器安装,整理安装脚本

本次脚本安装的源码在/usr/local/software/目录下,可以自己改动

安装tcl

#!/bin/bash
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
install_tcl_path=/usr/local/
tcl_name=tcl8.4.20-src.tar.gz
tcl_dir=tcl8.4.20
if [ -f /usr/local/software/$tcl_name ]; then
    echo "-------cp tcl8.4.20-src.tar.gz ----------"
    cp ${install_tcl_path}software/${tcl_name} ${install_tcl_path}${tcl_name}
    else
        echo "-------${tcl_name} not exist------------"
    exit 2
fi
cd ${install_tcl_path}
echo "-------enter $(pwd)-------"
echo "-------unzip ${tcl_name}-------"
tar xfvz ${tcl_name}
echo "-------unzip ${tcl_name} completed-------"
sleep 2
echo "------- install tcl-------"
cd ${tcl_dir}/unix
sleep 3
[ -d $install_tcl_path ]||mkdir $install_tcl_path
 ./configure --prefix=${install_tcl_path}tcl --enable-shared
 if [ $? -ne 0 ];then
    echo "configure failed ,please check it out!"
    exit 3
    else
        echo "make tcl, please wait for few minutes"
        make
fi
if [ $? -ne 0 ];then
    echo "make failed ,please check it out!"
    exit 4
    else
        echo "install tcl, please wait for few minutes"
        make install
  if [ $? -ne 0 ];then
    echo "make install error,please check it out"
    exit 5
  else
    echo "make install succeed!!!"
    cp ${install_tcl_path}${tcl_dir}/unix/tclUnixPort.h ${install_tcl_path}${tcl_dir}/generic/
  fi
fi

 

安装expect

#!/bin/bash
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
install_path=/usr/local/
file_name=expect5.45.3.tar.gz
file_dir=expect5.45.3
tcl_dir=/usr/local/tcl8.4.20
if [ -f /usr/local/software/$file_name ]; then
    echo "-------cp expect5.45.3.tar.gz ----------"
    cp ${install_path}software/${file_name} ${install_path}${file_name}
    else
        echo "-------${file_name} not exist------------"
    exit 2
fi
cd ${install_path}
echo "-------enter $(pwd)-------"
echo "-------unzip ${file_name}-------"
tar xfvz ${file_name}
echo "-------unzip ${file_name} completed-------"
sleep 2
echo "------- install tcl-------"
cd ${file_dir}
sleep 3
[ -d $install_path ]||mkdir $install_path
 ./configure --prefix=${install_path}expect --with-tcl=${install_path}tcl/lib --with-tclinclude=${tcl_dir}/generic
 if [ $? -ne 0 ];then
    echo "configure failed ,please check it out!"
    exit 3
    else
        echo "make tcl, please wait for few minutes"
        make
fi
if [ $? -ne 0 ];then
    echo "make failed ,please check it out!"
    exit 4
    else
        echo "install expect5, please wait for few minutes"
        make install
  if [ $? -ne 0 ];then
    echo "make install error,please check it out"
    exit 5
  else
    echo "make install succeed!!!"
    echo "------- Establish a synchronized link ------ "
    ln -s ${install_path}tcl/bin/expect ${install_path}expect/bin/expect
    ln -s ${install_path}expect/bin/expect /bin/expect
  fi
fi

 

expect的简单使用参考 Linux 通过Expect自动实现远程拷贝Scp自动输入密码

posted on 2020-08-24 16:04  酆都城主  阅读(933)  评论(0编辑  收藏  举报