我正在尝试在台式机上打开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存在问题。有谁知道如何验证/检查?
答案 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, Tk和Expect。
解压缩源文件后,请按照以下步骤进行安装:
$ 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
不起作用的情况下,可以将unwarp
ing approach与TclKits结合使用的sdx可以解决。在Ubuntu上,我使用了一个用于RHEL5 x86_64。