2011-02-17 49 views
38

当我的应用程序运行(或当我从从命令行运行)的wkhtmltopdf命令我碰到下面的错误:(显示的命令行的话)错误运行wkhtmltopdf - (错误而载入共享库)

#> wkhtmltopdf 
wkhtmltopdf: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory 

我注意到这个库确实在/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 

我还检查

# 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) 

这是一个EngineYard的巴布亚服务器

回答

98

Unix的包X11-库/ libXext和x11-库上运行的lib的依赖性/ libXrender是依赖

Gentoo:

sudo emerge libXext libXrender 

PDFkit wiki还更详细地解释了如何让wkhtmltopdf在发动机工地上工作。 PDFkit wiki

的Debian或Ubuntu:

sudo apt-get install libxrender1 

希望这有助于

+0

它确实有助于了解别人是有这个问题......我的工作在32位实例,但失败这一个64位的机器,我对他们似乎有同样的问题。 – Ben 2011-02-18 01:47:16

+0

嗨本,我刚刚编辑我的答案,包括一个PDFkit wiki的链接,这可能有帮助 – 2011-02-18 04:02:26

+0

该帖子有指示,但我注意到它引用了i386版本,所以我改为引用amd64,它的工作...所以我更新了wiki以包含64位实例的说明。 – Ben 2011-02-18 15:49:28

3

我有完全相同的问题!对我来说,解决方案是安装wkhtmltoimage的64位版本。

29

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

sudo apt-get install libxrender1 
22

我也需要做后:

sudo apt-get install libfontconfig1 
5

陶然成今天这个一RHEL7机器上运行wkhtmltopdf的static version。解决方案是安装几个依赖关系:

yum install libXrender libXext fontconfig 
0

请注意,有分布在UPX压缩格式wkhtmltopdf的可执行版本,LDD和文件都将报告说,即使负载需要共享库文件是静态链接。

查看试试

strings | fgrep UPX

如果您看到任何“UPX”id字符串,请安装upx并在文件副本上使用“upx -d”(因为upx工作正常),然后在未压缩文件上运行ldd。

4

如果你的系统是64位,你的软件需要32个库,您需要添加标志 “I386”,

例如Ubuntu上:

sudo apt-get install libxrender1:i386 
2

与Ubuntu 16(从一个新的码头工人安装):

apt install -y libxrender1 libxext6

相关问题