expect移植到powerPC平台的过程

  1. expect介绍

expect时用与提供自动交互的工具工作需要telnet/ssh自动登录远程设备并进行一些固定操作。比如如果想要用ssh登陆服务器,每次都输入密码你觉得麻烦,那你就可以使用expect来做自动交互,这样的话就不用每次都输入密码了。

先看例子:

#!/usr/bin/expect

#set timeout 20 #设置超时时间
spawn ssh root@192.168.43.131

expect "*password:"

send "123\r"# expect "*#"

interact

 

解释:

1.#!/usr/bin/expect :需要先安装软件,然后来说明用expect来执行

2.spawn ssh root@192.168.43.131 :spawn是进入expect环境后才可以执行的expect内部命令,用来执行它后面的命令。

3.expect "*password:" :也是expect的内部命令,用来解惑关键的字符串,如果有,就会立即返回下面设置的内容,如果没有就看是否设置了超时时间。

4.send "123\r":这时执行交互式动作,与手工输入密码等效,在expect截获关键字之后,它就会输入send后面的内容。

5.interact :执行完毕后把持交互状态,把控制台,这时候就可以进行你想要进行的操作了。如果没有这一句,在登陆完成之后就会退出,而不是留在远程终端上。

2.源码下载

expect5.45.3.tar.gz:

https://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

tcl8.6.8-src.tar.gz:

http://tcl.sourceforge.net/

也可以从CSDN下载。

新建目录soft,将下载的expect5.45.3.tar.gz、tcl8.6.8-src.tar.gz放在soft目录下。

 

3.交叉编译TCL

由于expect是基于tcl语言的,所以移植expect前,需先交叉编译tcl

 

root@ubuntu:/home/hanyang/soft# tar zxf tcl8.6.8-src.tar.gz

root@ubuntu:/home/hanyang/soft# mkdir install_tcl

root@ubuntu:/home/hanyang/soft# cd tcl8.6.8/unix/

注意,/configure …… 之前应该先:

root@ubuntu:export tcl_cv_strtod_buggy=1

root@ubuntu:export ac_cv_func_strtod=yes

否则,交叉编译tcl时会出现以下错误(普通编译无此错误)

fixstrtod.o: In function `fixstrtod':

fixstrtod.c:(.text+0x0): multiple definition of `fixstrtod'

strtod.o:strtod.c:(.text+0x0): first defined here

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix#export CC=/home/hanyang/BRD_BSP_Version/export/brd_bsp/tools/ppc_gcc4.8.2_glibc2.18.0_multi/bin/ppce6500-hardfloat-linux-gnu-gcc

 

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix#

./configure --prefix=/home/hanyang/soft/install_tcl/ --host=powerpc

生成Makefile

(configure时留意一下是否有这句话,没有的话可能有问题checking for powerpc-gcc... /home/hanyang/BRD_BSP_Version/export/brd_bsp/tools/ppc_gcc4.8.2_glibc2.18.0_multi/bin/ppce6500-hardfloat-linux-gnu-gcc

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix# make

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix# make install

在/home/hanyang/soft/install_tcl/lib路径下获取libtcl8.6.sotcl8.6文件夹。

(file libtcl8.6.so 看一下是否是交叉编译运行在PowerPC下的 。)

4.编译expect

root@ubuntu:/home/hanyang/soft# tar zxf expect5.45.3.tar.gz

注意,expect不支持交叉编译,所以在configure,需要先用默认的X86 gcc编译,等configure后再修改Makefile

root@ubuntu:/home/hanyang/soft/expect5.45.3# ./configure  \

--prefix=/home/hanyang/soft/install_expect/   \

--with-tcl=/home/hanyang/soft/install_tcl/lib  \

--with-x=no                        \

--with-tclinclude=/home/hanyang/soft/install_tcl/include  \

1)--prefix=/home/hanyang/soft/install_expect/:指定安装目录
2)--with-tcl=/home/hanyang/soft/install_tcl/lib:指定tcl所在目录,通常指定为tcl安装目录下的lib路径
3)--with-x=no: 告诉配置脚本,不要查找 tk (tcl 的 GUI 组件) 或 X 窗口系统库
4)--with-tclinclude=/home/hanyang/soft/install_tcl/include:指定tcl头文件所在目录,通常指定为tcl安装目录下的include路径

(检查打印信息checking for gcc... gcc

生成Makefile后,修改

CC=/../../ppce6500-hardfloat-linux-gnu-gcc

AR=/../../ppce6500-hardfloat-linux-gnu-ar

 

root@ubuntu:/home/hanyang/soft/expect5.45.3# make

root@ubuntu:/home/hanyang/soft/expect5.45.3# make install

make install会出现错误,可以不管,只要能正常编译生成expect和libexpect5.45.so即可

 

编译生成libexpect5.45.3.soexpect,file看一下是否是运行在PowerPC平台上的。

5.移植

expect                   -------------\usr\local\bin

libexpect5.45.3.so、libtcl8.6.so-------------\lib

tcl8.6                    ------------\usr\lib

调用expect,进入expect环境,说明安装成功。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值