Problem to install RPM's and/or run dot on Centos 6

Hi @Ellson (or y’all if you can help).

Installation problem:
When I install homebuilt RPM’s or RPM’s from https://www2.graphviz.org/Packages/stable/centos/6/os/x86_64/, I get errors saying that /bin/dot is not found. After the installation, I find dot in /usr/bin/dot. Before the installation dot does not exist (as expected).

Execution problem:
When running dot after the installation, no output formats are supported. I don’t know if it’s related to the first problem or if it’s something different.

Context:
As you can see below, I’m doing this in a Docker container since I don’t have access to a native system. I don’t know if this has something to do with it or not. @Ellson: Perhaps you can try on your virtual machine?

Why am I doing this? I’m trying to add automated tests to the GitLab CI/CD pipeline, see https://gitlab.com/magjac/graphviz/pipelines/135114024. As you can see, all other operating systems run fine.

Full log from manual attempt:

magjac@magjac-ThinkPad-T440s:~/graphviz-test$ docker run -it -v /home/magjac/graphviz-test:/repo graphviz:centos6
[root@0a7f0f086141 /]# whereis dot
dot:
[root@0a7f0f086141 /]# dot -V
bash: dot: command not found
[root@0a7f0f086141 /]# rpm --install --force /repo/Packages/development/centos/6/os/x86_64/graphviz-*.rpm
/var/tmp/rpm-tmp.q2JL8v: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-core-2.43.20200406.0510-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.5Bdo6c: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-x-2.43.20200406.0510-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.Cz4XbV: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-gd-2.43.20200406.0510-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.VgtZwq: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-core-2.45.20200412.0919-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.W1Zgod: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-x-2.45.20200412.0919-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.ubVuK1: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-gd-2.45.20200412.0919-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.uT6YgS: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-visio-2.43.20200406.0510-1.el6.x86_64) scriptlet failed, exit status 127
/var/tmp/rpm-tmp.Bu9IXJ: line 1: /bin/dot: No such file or directory
warning: %post(graphviz-plugins-visio-2.45.20200412.0919-1.el6.x86_64) scriptlet failed, exit status 127
[root@0a7f0f086141 /]# whereis dot
dot: /usr/bin/dot /usr/share/man/man1/dot.1.gz
[root@0a7f0f086141 /]# dot -V
dot - graphviz version 2.45.20200412.0919 (20200412.0919)
[root@0a7f0f086141 /]# echo 'digraph {a}' | dot -Tsvg
Format: "svg" not recognized. Use one of:
[root@0a7f0f086141 /]# 

Full log from pipeline:
Available at https://gitlab.com/magjac/graphviz/-/jobs/507804557

  1. I suspect at the root of the problem was a Redhat change sometime after centos6 where they merged /bin and /usr/bin and made /usr/bin a

softlink to /bin. By explicitly using /bin/dot i was probably trying to exclude any user-installed copies in (e.g.) /user/local/bin.

Maybe we can use something like ( PATH=/bin:/usr/bin dot -c ) … untested yet. Alternatively we maybe can just use: /usr/bin/dot -c

  1. Something may be wrong with the dependency ordering since the post-install script in every

plugin package tries to run “dot -c” to register new plugins and graphviz-plugins-core is getting install prior to graphviz which provides the dot bin.

Maybe this doesn’t matter normally since it will get re-run later.

John

1 Like

Thanks. I filed an issue for the first problem: https://gitlab.com/graphviz/graphviz/-/issues/1695

  1. Will you attempt a fix?
  2. Yes, there is clearly something fishy with the dependencies. I tried to install one package at the time, but it was impossible since there seems to be circular dependencies. I ended up installing them all in one go to avoid it.

I discovered another issue that was masking the problem on my system. If you remove all the graphviz rpms to try to get a clean install the config6 file and its parent directory is left behind.

At least I can now recreate the problem on my ststem

1 Like

A fix is now available in the development series.

1 Like

I still get an error message from the installation. See https://gitlab.com/magjac/graphviz/-/jobs/508012974. It does however not seem to have any consequences and the second problem is gone.

Now the whole pipeline runs fine: https://gitlab.com/magjac/graphviz/pipelines/135195845 :sunglasses:

Thanks @Ellson :smiley:

Problem where dot -c was being run too early in fresh installs and generating a warning should now be fixed.

1 Like

Yes, that nailed it. Thanks :slightly_smiling_face: