Multixterm - "无法找到包Expect"

时间:2016-06-03 16:28:06

标签: linux ubuntu tcl expect xterm

我正在尝试在台式机上打开multixterm,但我最终得到了错误:

usr:~> multixterm can't find package Expect while executing "package require Expect" (file "/usr/local/bin/multixterm" line 6")

任何帮助将不胜感激。我已经尝试在我的笔记本电脑和朋友的机器上运行multixterm,那里没有问题。 Expect和multixterm都存在于/usr/local/bin/目录中。

更新:我还发现kibitz和autoexpect都不会运行。我现在假设程序在哪里寻找Expect存在问题。有谁知道如何验证/检查?

2 个答案:

答案 0 :(得分:4)

首先,运行( ){2,}以找出 Expect 库(ldd /usr/local/bin/expect)的位置。例如:

libexpect

然后,将TCLLIBPATH var导出到% ldd /usr/bin/expect | grep libexpect libexpect.so.5.45 => /usr/lib/x86_64-linux-gnu/libexpect.so.5.45 (0x00007f230f348000) % 目录。例如(看起来你正在使用 C shell ):

libexpect

然后运行% setenv TCLLIBPATH /usr/lib/x86_64-linux-gnu 命令。

答案 1 :(得分:0)

根据我在Ubuntu上的经验,通过libexpect.so获得的apt不能用于package require,因为该文件包含3个undefined-symbol。 (例如Debian Bug report logs - #890228

所以我从源头编译了libexpect.so。为此,我必须编译3个源:Tcl, TkExpect

解压缩源文件后,请按照以下步骤进行安装:

$ cd /path/to/install
$ mkdir tcl tk expect
$
$ /path/to/download/tcl8.*.*/unix/configure \
      --prefix=/path/to/install/tcl
$ make ; make install
$
$ /path/to/download/tk8.*.*/unix/configure \
      --with-tcl=/path/to/install/tcl \
      --prefix=/path/to/install/tk
$ make ; make install
$
$ /path/to/download/expect5.*.*/configure \
      --with-tclconfig=/path/to/install/tcl/lib \
      --with-tkconfig=/path/to/install/tk/lib \
      --prefix=/path/to/install/expect
$ make ; make install

将没有/path/to/install/expect/libexpect5.*.*.so的64位体系结构文件undefined-symbol给了我。

这里有2条有关编译的有用链接:

最后,在TCLLIBPATH不起作用的情况下,可以将unwarping approachTclKits结合使用的sdx可以解决。在Ubuntu上,我使用了一个用于RHEL5 x86_64。