Получение визуализации XHProf (проблемы с Graphviz и dot) работают

Я установил XHProf и хотел бы увидеть визуализацию графа вызовов. Я нажал на View Full Callgraph и получил следующее сообщение первым:

не удалось выполнить cmd: «dot -Tpng». stderr: `sh: точка: команда не найдена ‘

После некоторого поиска в Google, я обнаружил, что это вызвано не установленным Graphviz. Затем я установил его:

$ yum install graphviz

и попробовал еще раз. Теперь я получаю следующие сообщения об ошибках:

не удалось выполнить cmd: «dot -Tpng». stderr: `Ошибка: / usr / lib64 / graphviz / config6 имеет нулевой размер или другая ошибка чтения.

Ошибка: / usr / lib64 / graphviz / config6 имеет нулевой размер или другая ошибка чтения.

Для «точки» нет поддержки движка макетов

Возможно, для регистрации плагинов нужно запустить «dot -c» (с правами установщика)?

Действительно выполнение 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

Никакого эффекта, все те же ошибки.

Что здесь не так и как заставить это работать?

Среда: VirtualBox VM с CentOS 6 в качестве гостевой системы.

1

Решение

Я наконец получил это работает.


Короткий ответ:

Я думаю, yum update или / и, возможно, 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

Теперь это работает.

0

Другие решения

У меня была такая же проблема в некоторых системах RHEL 6, и оказалось, что проблема в скрытых зависимостях плагинов Graphviz в некоторых библиотеках X11, которые я смог установить, установив следующие rpms:

  • libXau
  • libxcb
  • libXext

Итак, это решило мою проблему: yum install gtk2 libXau libxcb libXext

0