运行wkhtmltopdf时出错 - (加载共享库时出错)

Ben*_*Ben 50 pdf-generation ruby-on-rails wkhtmltopdf

当我的应用程序运行时(或从命令行运行时)wkhtmltopdf命令我收到以下错误:(从命令行显示)

#> wkhtmltopdf 
wkhtmltopdf: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我注意到lib确实在/usr/lib文件夹中,但不在/lib文件夹中.它们中的哪一个是否重要?有没有办法让它识别它?

#> ls -l /usr/lib/libXrender.so*
lrwxrwxrwx 1 root root    19 Feb 17 07:20 /usr/lib/libXrender.so -> libXrender.so.1.3.0
lrwxrwxrwx 1 root root    19 Feb 17 07:20 /usr/lib/libXrender.so.1 -> libXrender.so.1.3.0
-rwxr-xr-x 1 root root 39184 Jan 29  2010 /usr/lib/libXrender.so.1.3.0

#> ls -l /lib/libXrender.so*
ls: cannot access /lib/libXrender.so*: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我还检查了lib的依赖项

# ldd /usr/lib/libXrender.so.1
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00002b9cb5afd000)
    libc.so.6 => /lib/libc.so.6 (0x00002b9cb5e04000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00002b9cb6143000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00002b9cb6347000)
    libdl.so.2 => /lib/libdl.so.2 (0x00002b9cb654d000)
    /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
Run Code Online (Sandbox Code Playgroud)

这是在EngineYard gentoo服务器上运行的

Dav*_*low 123

Unix软件包x11-libs/libXext和x11-libs/libXrender是依赖项

Gentoo的:

sudo emerge libXext libXrender
Run Code Online (Sandbox Code Playgroud)

PDFkit wiki还更详细地解释了如何让wkhtmltopdf在引擎码上工作. PDFkit维基

Debian或Ubuntu:

sudo apt-get install libxrender1
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


小智 33

我在Debian Squeeze上遇到了同样的问题,amd64.安装libxrender1为我解决了这个问题.

sudo apt-get install libxrender1
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案,因为它确实有效. (8认同)

GKi*_*lin 29

我还需要做以下事情:

sudo apt-get install libfontconfig1
Run Code Online (Sandbox Code Playgroud)

  • 这非常有帮助!除了libxrender1之外,还需要libfontconfig1.因此,这回答了这个问题. (3认同)

a c*_*der 9

今天在运行静态版本的wkhtmltopdf 的RHEL7机器上运行.解决方案是安装一些依赖项:

yum install libXrender libXext fontconfig 
Run Code Online (Sandbox Code Playgroud)

  • 在我的上执行此操作后,它显示黑框而不是文本。我必须安装这两个软件包才能使文本正常工作:“xorg-x11-font-utils”和“xorg-x11-fonts-Type1” (2认同)

风间月*_*风间月 7

如果您的系统是64位,并且您的软件需要32位库,则需要添加标志“ i386”,

例如在ubuntu上:

sudo apt-get install libxrender1:i386
Run Code Online (Sandbox Code Playgroud)


Tho*_*aux 5

使用 Ubuntu 16(来自全新的 Docker 安装):

apt install -y libxrender1 libxext6