web-dev-qa-db-fra.com

Erreur lors de l'exécution de wkhtmltopdf - (erreur lors du chargement des bibliothèques partagées)

Lorsque mon application s'exécute (ou lorsque j'exécute à partir de la ligne de commande), la commande wkhtmltopdf j'obtiens l'erreur suivante: (l'affichant à partir de la ligne de commande)

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

J'ai remarqué que la lib est en effet dans le /usr/lib dossier mais pas le /lib dossier. Est-il important de savoir dans lequel il se trouve? Existe-t-il un moyen de le faire reconnaître?

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

J'ai également vérifié les dépendances de la 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)

Cela fonctionne sur un serveur Gentoo EngineYard

49
Ben

Les packages Unix x11-libs/libXext et x11-libs/libXrender sont des dépendances

Gentoo:

Sudo emerge libXext libXrender

Le wiki PDFkit explique également plus en détail comment faire fonctionner wkhtmltopdf sur le moteur. wiki PDFkit

Debian ou Ubuntu:

Sudo apt-get install libxrender1

J'espère que cela t'aides

118
David Barlow

J'ai eu le même problème sur Debian Squeeze, AMD64. L'installation de libxrender1 a résolu le problème pour moi.

Sudo apt-get install libxrender1
32
contact920

Je dois aussi faire après:

Sudo apt-get install libfontconfig1
29
GKislin

Je me suis lancé là-dedans aujourd'hui sur une machine RHEL7 exécutant version statique de wkhtmltopdf. La solution consistait à installer quelques dépendances:

yum install libXrender libXext fontconfig 
8
a coder

Si votre système est en 64 bits et que votre logiciel nécessite des bibliothèques 32 bits, vous devez ajouter le drapeau "i386",

par exemple sur ubuntu:

Sudo apt-get install libxrender1:i386
6
风间月

J'avais exactement le même problème! Pour moi, la solution était d'installer la version 64 bits de wkhtmltoimage.

4
André

Avec Ubuntu 16 (à partir d'une nouvelle installation Docker):

apt install -y libxrender1 libxext6

3
Thomas Decaux

Sudo apt-get install xvfb

pour installer le package de dépendance.

Mettre à jour les modules de nœuds wkhtmltopdf index.js

wkhtmltopdf.command = 'wkhtmltopdf'; à 'wkhtmltopdf.command =' xvfb-run wkhtmltopdf ';'

1
kishore

Notez qu'il existe une version exécutable de wkhtmltopdf distribuée dans un format compressé UPX, ldd et file indiqueront tous deux que ce fichier est lié statiquement même si la charge utile nécessite des bibliothèques partagées.

Pour vérifier essayez

cordes | fgrep UPX

Si vous voyez des chaînes d'ID "UPX", installez upx et utilisez "upx -d" sur une copie du fichier (car upx fonctionne en place), puis exécutez ldd sur le fichier non compressé.

0
Micheál Lunny