Debian: ¿cómo poner dos versiones de libcurl en un sistema?

Debian: ¿cómo poner dos versiones de libcurl en un sistema?

Estoy intentando migrar dos aplicaciones web en un solo servidor (debian10), ambas requieren versiones diferentes de php y ambas requieren extensiones cURL para funcionar correctamente.

php5.6-curl usa libcurl v3

php8.1-curl usa libcurl v4

En primer lugar, instalé php5.6-curl, y cuando intenté instalar php8.1-curl, apt arroja una notificación queThe following packages have unmet dependencies: php8.1-curl : Depends: libcurl4 (>= 7.56.1) but it is not going to be installed

Si uso -f en apt, elimina php5.6-curl...

¿Cuál es la forma más elegante de hacer que esas dos bibliotecas libcurl estén disponibles en un solo sistema?

gracias, roberto

editar: Por lo que puedo ver, el problema es que libcurl3 y libcurl4 comparten el mismo archivo /usr/lib/x86_64-linux-gnu/libcurl.so.4 y cambia cuando se reinstala el paquete (libcurl3<->libcurl4). php[5.6,8.1]-fpm intenta cargar la biblioteca, la que tiene una versión incorrecta de libcurl.so.4 falla y php no puede usar ese módulo.

¿Quizás exista un método elegante para forzar a los binarios 4eg php5-curl a usar la biblioteca desde la ruta definida por el usuario?

Respuesta1

Coloca ambas aplicaciones en un contenedor que contenga todo lo que necesita.

Respuesta2

Yo mismo encontré una solución, si desea resolver un problema similar, puede seguir mi método, que no es el más elegante.

  1. instale todos los paquetes php5.6 necesarios;
  2. copiar el directorio /usr/lib a /usr/php56libs
  3. editar el archivo de servicio systemd en mi caso: systemctl edit --full php5.6-fpm
  4. bajoserviciosección agregar variable de entorno: Environment="LD_LIBRARY_PATH=/usr/php56libs"
  5. ahora puede instalar todos los paquetes php8.1 con apt (con la -fopción forzar). Eliminará todas las bibliotecas en conflicto de /usr/lib, pero no importa porque el servicio php5.6-fpm usará las de /usr/php56libs.

Respuesta3

Inicie sesión en su servidor a través de SSH. Asegúrate de estar en el directorio de inicio de tu usuario. Localice la versión que desea instalar. Descomprima el archivo. Navegue a este nuevo directorio. Abra su .bash_profile usando nano o vim. Por ejemplo: agregue el archivo requerido en .bash y actualice Actualice su .bash_profile para activar su nueva configuración. Verifique la ubicación y versión de curl

información relacionada