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
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
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
Je dois aussi faire après:
Sudo apt-get install libfontconfig1
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
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
J'avais exactement le même problème! Pour moi, la solution était d'installer la version 64 bits de wkhtmltoimage.
Avec Ubuntu 16 (à partir d'une nouvelle installation Docker):
apt install -y libxrender1 libxext6
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 ';'
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é.