Maison > Questions et réponses > le corps du texte
Il existe un lot de machines qui doivent déployer le même nginx. Je souhaite copier les fichiers directement après une compilation, mais après la copie, cela indique qu'une certaine bibliothèque dépendante est introuvable.
Existe-t-il un moyen de le compiler une fois et de le faire fonctionner sur chaque machine ?
習慣沉默2017-05-16 17:22:56
Vous pouvez utiliser ldd et lsof pour connaître les bibliothèques partagées dont dépend le fichier binaire nginx, puis les copier dans un répertoire de nginx (comme /png/pack/libs
), puis utiliser patchelf pour modifier le rpath et l'interpréteur du fichier binaire nginx :
patchelf --set-rpath /png/pack/libs --force-rpath /png/nginx/1.8/sbin/nginx
patchelf --set-interpreter /png/pack/libs/ld-linux-x86-64.so.2 /png/nginx/1.8/sbin/nginx
Ensuite, emballez le répertoire/png et déployez-le sur chaque serveur. Pour plus de détails, veuillez vous référer à la façon dont j'ai compilé et empaqueté PHP7 pour les distributions Linux 64 bits.