我有一个运行DebianBuster的docker容器,我想在里面运行wkhtmltopdf。我有两台主机,都是相同的,都运行同一个容器构建相同的Dockerfile。两者都运行相同版本的docker。在一台机器上wkhtmltopdf运行良好,但在另一台机器上我得到:
wkhtmltopdf: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
在其工作的机器上:
# ldd /usr/bin/wkhtmltopdf | grep libQt5Core
libQt5Core.so.5 => /lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f8da6f2f000)
# ls -l /lib/x86_64-linux-gnu/libQt5Core.so.5*
lrwxrwxrwx. 1 root root 19 Dec 4 2017 /lib/x86_64-linux-gnu/libQt5Core.so.5 -> libQt5Core.so.5.9.2
lrwxrwxrwx. 1 root root 19 Dec 4 2017 /lib/x86_64-linux-gnu/libQt5Core.so.5.9 -> libQt5Core.so.5.9.2
-rw-r--r--. 1 root root 5138560 Dec 4 2017 /lib/x86_64-linux-gnu/libQt5Core.so.5.9.2
在不工作的机器上:
# ldd /usr/bin/wkhtmltopdf | grep libQt5Core
libQt5Core.so.5 => not found
# ls -l /lib/x86_64-linux-gnu/libQt5Core.so.5*
lrwxrwxrwx. 1 root root 20 Nov 18 16:36 /lib/x86_64-linux-gnu/libQt5Core.so.5 -> libQt5Core.so.5.11.2
lrwxrwxrwx. 1 root root 20 Nov 18 16:36 /lib/x86_64-linux-gnu/libQt5Core.so.5.11 -> libQt5Core.so.5.11.2
-rw-r--r--. 1 root root 5196040 Nov 18 16:36 /lib/x86_64-linux-gnu/libQt5Core.so.5.11.2
现在我没有显式地安装Qt—我假设它是作为wkhtmltopf的依赖项安装的。
容器内部:
# cat /etc/debian_version
buster/sid
# wkhtmltopdf -V
wkhtmltopdf 0.12.4
外部容器:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
# docker -v
Docker version 17.06.2-ee-18, build c78b5e1
为什么libQt5Core的版本不同?为什么它在不工作的机器上找不到呢。
这真让我烦恼。