我有一个专业软件ANSYS,用于结构分析。安装过程我在论坛里作了记录。不过一直以来有个问题,就是要想在窗口界面模式运行(ansys150 -g)就必须通过sudo才能正常工作,否则:
- 开始界面后,在命令栏无法输入命令;
- 退出时提示错误信息:
代码: 全选
input contexts not freed before XCloseIM
forrtl: error (76): Abort trap signal
Image PC Routine Line Source
libc.so.6 00007FC50CAAF107 Unknown Unknown Unknown
libc.so.6 00007FC50CAB04E8 Unknown Unknown Unknown
libtcl8.4.so 00007FC4C39AC0DE Unknown Unknown Unknown
libtcl8.4.so 00007FC4C39AC16B Unknown Unknown Unknown
libtk8.4.so 00007FC4C3794D56 Unknown Unknown Unknown
libtk8.4.so 00007FC4C379085F Unknown Unknown Unknown
libtcl8.4.so 00007FC4C39875F7 Unknown Unknown Unknown
libAnsTclTk.so 00007FC4C3BFA34B Unknown Unknown Unknown
libAnsTclTk.so 00007FC4C3BFB0E4 Unknown Unknown Unknown
libansys.so 00007FC5162FDA07 Unknown Unknown Unknown
libansys.so 00007FC519409BC0 Unknown Unknown Unknown
libansys.so 00007FC51984597F Unknown Unknown Unknown
libansys.so 00007FC517D01854 Unknown Unknown Unknown
libansys.so 00007FC51655CA1F Unknown Unknown Unknown
libansys.so 00007FC514D19F08 Unknown Unknown Unknown
libansys.so 00007FC514D1A30C Unknown Unknown Unknown
libXt.so.6 00007FC50DDFE57D Unknown Unknown Unknown
libXm.so.4 00007FC50E766AC1 Unknown Unknown Unknown
libXm.so.4 00007FC50E7671E5 Unknown Unknown Unknown
libXm.so.4 00007FC50E73815B Unknown Unknown Unknown
libXm.so.4 00007FC50E7E7DB2 Unknown Unknown Unknown
libXt.so.6 00007FC50DE32855 Unknown Unknown Unknown
libXt.so.6 00007FC50DE337E2 Unknown Unknown Unknown
libXt.so.6 00007FC50DE0C1BB Unknown Unknown Unknown
libXt.so.6 00007FC50DE0C87D Unknown Unknown Unknown
libXt.so.6 00007FC50DE0C959 Unknown Unknown Unknown
libansys.so 00007FC519AB8B69 Unknown Unknown Unknown
libansys.so 00007FC519AB7A02 Unknown Unknown Unknown
libansys.so 00007FC51947FB7C Unknown Unknown Unknown
libansys.so 00007FC518FFC367 Unknown Unknown Unknown
libansys.so 00007FC518FE69D7 Unknown Unknown Unknown
libansys.so 00007FC519B5A6A2 Unknown Unknown Unknown
ansys.e150 0000000000407556 Unknown Unknown Unknown
ansys.e150 0000000000406DB5 Unknown Unknown Unknown
ansys.e150 0000000000406C9C Unknown Unknown Unknown
libc.so.6 00007FC50CA9BB45 Unknown Unknown Unknown
ansys.e150 0000000000406BA9 Unknown Unknown Unknown
Aborted
所报这些未知动态库在系统里都有。而且当运行命令行模式(ansys150)时,不加sudo权限是可以正常工作,且退出时没有错误信息的。现在的问题是:为什么在带有界面时会出现上述两个问题,又该从何处着手解决呢?
下面是vickycq的回复:
1. 错误信息提到 XCloseIM(),可能与输入法有关。下面链接中的帖子提到关闭输入法后启动ANSYS图形界面无报错。
http://www.hao007.net/bbs/viewthread.ph ... #pid179273
2. sudo 和 root / 普通用户相比,除了权限区别,运行环境(各类环境变量)也大不相同。
可以执行下面的命令,看区别:
2-1. 普通用户shell执行 printenv
2-2. 普通用户shell执行 sudo printenv
2-3. root shell 执行 printenv (通过 su 进入)
2-4. root login shell 执行 printenv (通过 su -l 进入)
在我这里,2-2 的环境比较简单,而 2-1 & 2-3 的环境比较复杂。
但限于对ANSYS这款软件的具体了解,不能确定是否与此有关。
也可用另一套权限管理工具 policykit(pkexec) 来启动软件,看是否正常?
如:pkexec ansys150 -g
发现 pkexec 默认提供的运行环境比 sudo 还要精简。
3. 回忆起以前在Linux下使用过科学计算软件IDL 7.1,同样出现过命令行模式(idl)正常,而图形界面(idlde)指令框无法输入任何文字的问题。因此怀疑原因是否相近。
此类跨平台大型科学计算软件的图形界面通常不使用流行的 GTK / Qt 图形库,而是使用 Tcl/Tk 和 java 等看上去较为‘原始’的库。怀疑两款软件都遇到了 Tcl/Tk 与输入法/中文环境的配合bug。
相关bug:
https://bugs.debian.org/170504
https://kldp.org/node/83467
关于ansys15的安装,见链接:viewtopic.php?f=35&t=472714