• Linux expect源码安装


    首先下载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自动输入密码

  • 相关阅读:
    C# 控件,MenuStrip,statusStrip,contextMenuStrip,ImageList, Listview,MonthCalendar、DataGridView,combobox,textbox,DateTimePicker,treeview,picturebox、toolStrip,radioButton,TableLayoutPanel,numericUpDown
    c# 数据库操作,多数据库操作、数据库操作异常报错等问题
    Jquery 选择器的写法, selector
    C# 一、语法结构、注释、命名空间、Main入口点、变量与常量、运算符、流程控制(循环)
    c# 项目文件,C#viual studio使用方法
    finereport Web工具栏
    C# 学习笔记
    c# public private protected internal protected internal
    js Object.prototype.hasOwnProperty() 与 for in 区别
    js 对象的深克隆
  • 原文地址:https://www.cnblogs.com/xiaoweiv/p/13554401.html
Copyright © 2020-2023  润新知