找不到可用的 init.tcl 和冲突版本的 tcl

找不到可用的 init.tcl 和冲突版本的 tcl

我刚刚下载了该软件的 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。我只需删除该文件,它就可以正常工作。

相关内容