Debian: como colocar duas versões do libcurl em um sistema?

Debian: como colocar duas versões do libcurl em um sistema?

Estou tentando migrar dois aplicativos da web em um único servidor (debian10), ambos exigem versões diferentes de php e exigem extensões cURL para funcionar corretamente.

php5.6-curl usa libcurl v3

php8.1-curl usa libcurl v4

Primeiramente instalei o php5.6-curl, e quando tentei instalar o php8.1-curl - o apt lança uma notificação de queThe following packages have unmet dependencies: php8.1-curl : Depends: libcurl4 (>= 7.56.1) but it is not going to be installed

Se eu usar -f no apt, ele remove o php5.6-curl...

Qual é a maneira mais elegante de disponibilizar essas duas bibliotecas libcurl em um único sistema?

Obrigado, Roberto

editar: Pelo que posso ver, o problema é que libcurl3 e libcurl4 compartilham o mesmo arquivo /usr/lib/x86_64-linux-gnu/libcurl.so.4 e ele muda quando o pacote é reinstalado (libcurl3<->libcurl4). O php[5.6,8.1]-fpm tenta carregar a biblioteca, aquela que obtém a versão inadequada do libcurl.so.4 falha e o php não consegue usar esse módulo.

Talvez exista um método elegante para forçar os binários 4eg php5-curl a usar a biblioteca do caminho definido pelo usuário?

Responder1

Coloque os dois aplicativos em um contêiner que contenha tudo o que precisa.

Responder2

Eu mesmo encontrei uma solução alternativa, se você quiser resolver um problema semelhante, pode seguir o meu caminho, não o mais elegante.

  1. instale todos os pacotes php5.6 necessários;
  2. copie o diretório /usr/lib para /usr/php56libs
  3. edite o arquivo de serviço systemd no meu caso: systemctl edit --full php5.6-fpm
  4. sobserviçoseção adicionar variável de ambiente: Environment="LD_LIBRARY_PATH=/usr/php56libs"
  5. agora você pode instalar todos os pacotes php8.1 com apt (com -fopção force) ele removerá todas as bibliotecas conflitantes de /usr/lib mas isso não importa porque o serviço php5.6-fpm usará aqueles de /usr/php56libs

Responder3

Faça login no seu servidor via SSH. Certifique-se de estar no diretório inicial do seu usuário. Localize a versão que deseja instalar. Descompacte o arquivo. Navegue para este novo diretório. Abra seu .bash_profile usando nano ou vim. Por exemplo: Adicione o arquivo necessário em .bash e atualize. Atualize seu .bash_profile para ativar sua nova configuração. Verifique a localização e a versão do curl

informação relacionada