我刚刚下载了该软件的 Linux 版本(http://inano.au.dk/about/research-centers/nmr/software/simpson/)解压文件后,我运行sudo bash install.sh
并且所有依赖项都安装在我的 ubuntu 18.04 上,但是当我尝试使用simpson test.in
它运行测试文件时,出现了以下错误
SIMPSON is unable to initialize Tcl interpreter. Is init.tcl on your path?
Error: Can't find a usable init.tcl in the following directories:
/usr/share/simpson/tcl8.6 /usr/share/tcltk/tcl8.6 ./lib/tcl8.6 ./lib/tcl8.6 ./library ./library ./tcl8.6.5/library ./tcl8.6.5/library
/usr/share/tcltk/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.6.5, need exactly 8.6.8
version conflict for package "Tcl": have 8.6.5, need exactly 8.6.8
while executing
"package require -exact Tcl 8.6.8"
(file "/usr/share/tcltk/tcl8.6/init.tcl" line 19)
invoked from within
"source /usr/share/tcltk/tcl8.6/init.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile]"
有人能帮我吗?我想这应该很简单,但我对这方面很菜
答案1
我认为问题在于simpson
安装程序与其自己的(过时的)版本libtcl8.6.so
(以及其他共享库)捆绑在一起,与“系统”版本冲突。
我建议从 Ubuntu 存储库安装所有相关软件包(FFTW、BLAS 等),然后注释掉包装脚本中的TCL_LIBRARY
和导出,其中是您提供给安装程序脚本的位置 - 这样捆绑的库就会被完全忽略。LD_LIBRARY_PATH
<bindir>/simpson
<bindir>
例如,如果<bindir>
是~/bin
,那么~/bin/simpson
应该看起来像
#!/bin/sh
#export TCL_LIBRARY=/home/steeldriver/share/tcl8.6
#export LD_LIBRARY_PATH=/home/steeldriver/share
/home/steeldriver/share/simpson4.2.1 "$@"
答案2
我遇到了同样的问题,我想快速更新这个帖子,说明我是如何解决这个问题的:你说得对,SIMPSON 有自己的共享 tcl 库,这就是问题所在。该文件名为libtcl8.6.so
,对我来说,它位于 文件夹中/usr/share/simpson
。我只需删除该文件,它就可以正常工作。