让 XHProf 可视化(Graphviz 和点的问题)工作
Getting XHProf visualization (issues with Graphviz and dot) working
我安装了 XHProf 并希望查看调用图可视化。我点击 View Full Callgraph
并首先收到以下消息:
failed to execute cmd: " dot -Tpng". stderr: `sh: dot: command not found '
经过一些谷歌搜索,我发现这是由于未安装Graphviz造成的。然后我安装了它:
$ yum install graphviz
并再次尝试。现在我收到以下错误消息:
failed to execute cmd: " dot -Tpng". stderr: `Error: /usr/lib64/graphviz/config6 is zero sized, or other read error.
Error: /usr/lib64/graphviz/config6 is zero sized, or other read error.
There is no layout engine support for "dot"
Perhaps "dot -c" needs to be run (with installer's privileges) to register the plugins?
'
确实执行dot -c
导致错误:
$ dot -c
Error: /usr/lib64/graphviz/config6 is zero sized, or other read error.
Warning: Could not load "/usr/lib64/graphviz/libgvplugin_pango.so.6" - file not found
Warning: Could not load "/usr/lib64/graphviz/libgvplugin_xlib.so.6" - file not found
Segmentation fault
但是文件 libgvplugin_pango.so.6
和 libgvplugin_xlib.so.6
在那里并且位于 /usr/lib64/graphviz/
:
$ ls -l /usr/lib64/graphviz
total 724
...
lrwxrwxrwx 1 root root 26 May 19 13:58 libgvplugin_pango.so.6 -> libgvplugin_pango.so.6.0.0
-rwxr-xr-x 1 root root 22408 Sep 19 2012 libgvplugin_pango.so.6.0.0
lrwxrwxrwx 1 root root 25 May 19 13:58 libgvplugin_xlib.so.6 -> libgvplugin_xlib.so.6.0.0
-rwxr-xr-x 1 root root 15656 Sep 19 2012 libgvplugin_xlib.so.6.0.0
嗯,作为符号链接。不过没关系。反正我也测试过这个案例:
mv /usr/lib64/graphviz/libgvplugin_pango.so.6 /usr/lib64/graphviz/libgvplugin_pango.so.6_DEACT
mv /usr/lib64/graphviz/libgvplugin_xlib.so.6 /usr/lib64/graphviz/libgvplugin_xlib.so.6_DEACT
cp /usr/lib64/graphviz/libgvplugin_pango.so.6.0.0 /usr/lib64/graphviz/libgvplugin_pango.so.6
cp /usr/lib64/graphviz/libgvplugin_xlib.so.6.0.0 /usr/lib64/graphviz/libgvplugin_xlib.so.6
没有效果,还是一样的错误
这里出了什么问题以及如何让它工作?
环境:使用 CentOS 6 作为访客系统的 VirtualBox VM。
我终于成功了。
简答:
我想 yum update
or/and 也许 ann-libs
安装 可能是决定性的步骤。但这只是一个假设,因此我描述了所有可能很重要的步骤(见下文)。
详细解答:
首先我尝试安装 graphviz
和相关的软件包:
$ yum install 'graphviz*'
但是安装失败:
Error: php56w-common conflicts with php-common-5.3.3-46.el6_6.x86_64
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
cairo-1.8.8-3.1.el6.x86_64 has missing requires of libpixman-1.so.0()(64bit)
然后我尝试了同样的方法,但是在之前的存储库中添加了 graphviz-rhel.repo
:
$ cd /etc/yum.repos.d/
$ wget http://www.graphviz.org/graphviz-rhel.repo
$ yum list available 'graphviz*'
$ yum install 'graphviz*'
失败并出现另一个错误:
Error: Package: graphviz-2.38.0-1.el6.x86_64 (graphviz-stable)
Requires: libANN.so.1()(64bit)
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
cairo-1.8.8-3.1.el6.x86_64 has missing requires of libpixman-1.so.0()(64bit)
不出所料 --skip-broken
也没有成功。
之后我做了很多事情:yum clean all
、yum erase 'graphviz*'
、ann-libs
安装和 yum update
:
$ yum clean all
$ yum install 'graphviz*'
$ yum erase 'graphviz*'
$ cd ~/temp/
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/ann-libs-1.1.1-4.el6.x86_64.rpm
$ rpm -i ann-libs-1.1.1-4.el6.x86_64.rpm
$ yum update
现在可以了。
在某些 RHEL 6 系统上遇到了同样的问题,结果发现问题出在某些 X11 库上的 Graphviz 插件的隐藏依赖项,我可以通过安装以下 rpms 来安装它们:
libXau
libxcb
libXext
所以,这解决了我的问题:yum install gtk2 libXau libxcb libXext
我安装了 XHProf 并希望查看调用图可视化。我点击 View Full Callgraph
并首先收到以下消息:
failed to execute cmd: " dot -Tpng". stderr: `sh: dot: command not found '
经过一些谷歌搜索,我发现这是由于未安装Graphviz造成的。然后我安装了它:
$ yum install graphviz
并再次尝试。现在我收到以下错误消息:
failed to execute cmd: " dot -Tpng". stderr: `Error: /usr/lib64/graphviz/config6 is zero sized, or other read error.
Error: /usr/lib64/graphviz/config6 is zero sized, or other read error.
There is no layout engine support for "dot"
Perhaps "dot -c" needs to be run (with installer's privileges) to register the plugins?
'
确实执行dot -c
导致错误:
$ dot -c
Error: /usr/lib64/graphviz/config6 is zero sized, or other read error.
Warning: Could not load "/usr/lib64/graphviz/libgvplugin_pango.so.6" - file not found
Warning: Could not load "/usr/lib64/graphviz/libgvplugin_xlib.so.6" - file not found
Segmentation fault
但是文件 libgvplugin_pango.so.6
和 libgvplugin_xlib.so.6
在那里并且位于 /usr/lib64/graphviz/
:
$ ls -l /usr/lib64/graphviz
total 724
...
lrwxrwxrwx 1 root root 26 May 19 13:58 libgvplugin_pango.so.6 -> libgvplugin_pango.so.6.0.0
-rwxr-xr-x 1 root root 22408 Sep 19 2012 libgvplugin_pango.so.6.0.0
lrwxrwxrwx 1 root root 25 May 19 13:58 libgvplugin_xlib.so.6 -> libgvplugin_xlib.so.6.0.0
-rwxr-xr-x 1 root root 15656 Sep 19 2012 libgvplugin_xlib.so.6.0.0
嗯,作为符号链接。不过没关系。反正我也测试过这个案例:
mv /usr/lib64/graphviz/libgvplugin_pango.so.6 /usr/lib64/graphviz/libgvplugin_pango.so.6_DEACT
mv /usr/lib64/graphviz/libgvplugin_xlib.so.6 /usr/lib64/graphviz/libgvplugin_xlib.so.6_DEACT
cp /usr/lib64/graphviz/libgvplugin_pango.so.6.0.0 /usr/lib64/graphviz/libgvplugin_pango.so.6
cp /usr/lib64/graphviz/libgvplugin_xlib.so.6.0.0 /usr/lib64/graphviz/libgvplugin_xlib.so.6
没有效果,还是一样的错误
这里出了什么问题以及如何让它工作?
环境:使用 CentOS 6 作为访客系统的 VirtualBox VM。
我终于成功了。
简答:
我想 yum update
or/and 也许 ann-libs
安装 可能是决定性的步骤。但这只是一个假设,因此我描述了所有可能很重要的步骤(见下文)。
详细解答:
首先我尝试安装 graphviz
和相关的软件包:
$ yum install 'graphviz*'
但是安装失败:
Error: php56w-common conflicts with php-common-5.3.3-46.el6_6.x86_64
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
cairo-1.8.8-3.1.el6.x86_64 has missing requires of libpixman-1.so.0()(64bit)
然后我尝试了同样的方法,但是在之前的存储库中添加了 graphviz-rhel.repo
:
$ cd /etc/yum.repos.d/
$ wget http://www.graphviz.org/graphviz-rhel.repo
$ yum list available 'graphviz*'
$ yum install 'graphviz*'
失败并出现另一个错误:
Error: Package: graphviz-2.38.0-1.el6.x86_64 (graphviz-stable)
Requires: libANN.so.1()(64bit)
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
cairo-1.8.8-3.1.el6.x86_64 has missing requires of libpixman-1.so.0()(64bit)
不出所料 --skip-broken
也没有成功。
之后我做了很多事情:yum clean all
、yum erase 'graphviz*'
、ann-libs
安装和 yum update
:
$ yum clean all
$ yum install 'graphviz*'
$ yum erase 'graphviz*'
$ cd ~/temp/
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/ann-libs-1.1.1-4.el6.x86_64.rpm
$ rpm -i ann-libs-1.1.1-4.el6.x86_64.rpm
$ yum update
现在可以了。
在某些 RHEL 6 系统上遇到了同样的问题,结果发现问题出在某些 X11 库上的 Graphviz 插件的隐藏依赖项,我可以通过安装以下 rpms 来安装它们:
libXau
libxcb
libXext
所以,这解决了我的问题:yum install gtk2 libXau libxcb libXext