Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux tkdiff执行时出现空白错误消息";字体实际系统“;_Linux_Tcl_Tk - Fatal编程技术网

Linux tkdiff执行时出现空白错误消息";字体实际系统“;

Linux tkdiff执行时出现空白错误消息";字体实际系统“;,linux,tcl,tk,Linux,Tcl,Tk,我正试图使用现在备受尊敬的工具,但遇到了一个障碍。我有两个Linux系统。第一个系统是Redhat EL 6.4工作站,运行tkdiff非常好——我可以整天区分文件 在第二个系统上,CentOS 6.6版服务器出现以下堆栈跟踪故障: Error in startup script: while executing "font actual system" invoked from within "set sysfont [font actual system]" (fi

我正试图使用现在备受尊敬的工具,但遇到了一个障碍。我有两个Linux系统。第一个系统是Redhat EL 6.4工作站,运行tkdiff非常好——我可以整天区分文件

在第二个系统上,CentOS 6.6版服务器出现以下堆栈跟踪故障:

Error in startup script: 
    while executing
"font actual system"
    invoked from within
"set sysfont [font actual system]"
    (file "<path...>/bin/tkdiff" line 122)
显然,它对
字体实际系统
不满意。奇怪的是,
$errorCode
NONE
。以前安装过libXft和fontconfig软件包。我刚刚安装了以下附加的yum软件包:

xorg-x11-utils
libXv
libXxf86dga
libdmx
tk-devel (which installed fontconfig-devel and a bunch of other dependancies)
tcl-devel

TL;DR:运行wish的X客户端(CentOS服务器)上未安装X显示服务器(本地RHEL工作站)上的系统字体

我认为问题至少部分是由于我在CentOS服务器上运行
tkdiff
程序,并通过X显示到我原来的RedHat工作站。我在执行“font actual system”
时获取了根本原因的tcl堆栈跟踪(
),并使用它来缩小问题的范围。在RedHat工作站上,我启动了wish并执行了该命令以获得以下响应:

RedHat>$ wish
% font actual system
-family {DejaVu Sans} -size 12 -weight normal -slant roman -underline 0 -overstrike 0
% 
我推断CentOS服务器会尝试使用相同的系统字体,因为它在我的RHEL框上显示X。快速搜索无法找到适合此字体的yum软件包,因此我安装了它

sudo yum install dejavu-sans-mono-fonts
瞧!在CentOS上,我现在得到:

CentOS>$ wish
% font actual system
-family {DejaVu Sans Mono} -size 12 -weight normal -slant roman -underline 0 -overstrike 0
%

最后的测试:
tkdiff
现在运行正常

从wish内部寻找tkdiff时,它起作用的事实似乎是一个关键线索。从shebang运行时,配置与从完整环境运行时有所不同。然而,我对CentOS一无所知,也不知道为什么它会有所不同。尝试查看TCLLIB环境变量在各种.login/.rc文件中的设置位置,看看是否有线索。祝你好运Tk尝试很少依赖于其他包,因此更容易构建它并在其上构建。但是,8.5确实依赖于fontconfig和Xft。此外,一些语言的Tk嵌入部分是通过设置环境变量完成的,这可能会中断正常的Tk运行。我不知道这些是否对您有帮助……嗯,百胜告诉我我的CentOS box安装了fontconfig.x86_64和libXft.x86_64。我再戳一点,解决了!感谢@DonalFellows并提供了缩小范围的线索!
CentOS>$ wish
% font actual system
-family {DejaVu Sans Mono} -size 12 -weight normal -slant roman -underline 0 -overstrike 0
%