Debian: как установить две версии libcurl в одной системе?

Debian: как установить две версии libcurl в одной системе?

Я пытаюсь перенести два веб-приложения на один сервер (debian10), обоим требуются разные версии PHP, и обоим для правильной работы требуются расширения cURL.

php5.6-curl использует libcurl v3

php8.1-curl использует libcurl v4

Сначала я установил php5.6-curl, а когда попытался установить php8.1-curl - apt выдал уведомление, чтоThe following packages have unmet dependencies: php8.1-curl : Depends: libcurl4 (>= 7.56.1) but it is not going to be installed

Если я использую -f в apt, он удаляет php5.6-curl...

Какой наиболее элегантный способ сделать эти две библиотеки libcurl доступными в одной системе?

Спасибо, Роберт.

edit: Насколько я понимаю, проблема в том, что libcurl3 и libcurl4 используют один и тот же файл /usr/lib/x86_64-linux-gnu/libcurl.so.4, и он меняется при переустановке пакета (libcurl3<->libcurl4). PHP[5.6,8.1]-fpm пытается загрузить библиотеку, та, которая получает неправильную версию libcurl.so.4, терпит неудачу, и php не может использовать этот модуль.

Может быть, существует элегантный способ заставить исполняемые файлы 4eg php5-curl использовать библиотеку из указанного пользователем пути?

решение1

Поместите оба приложения в контейнер, содержащий все необходимое.

решение2

Я нашел обходной путь самостоятельно, если вы хотите решить похожую проблему, вы можете пойти моим, не самым элегантным путем.

  1. установить все необходимые пакеты php5.6;
  2. скопировать каталог /usr/lib в /usr/php56libs
  3. в моем случае отредактируйте файл службы systemd: systemctl edit --full php5.6-fpm
  4. подуслугараздел добавить переменную окружения: Environment="LD_LIBRARY_PATH=/usr/php56libs"
  5. теперь вы можете установить все пакеты php8.1 с помощью apt (с -fопцией force), это удалит все конфликтующие библиотеки из /usr/lib, но это не имеет значения, поскольку служба php5.6-fpm будет использовать библиотеки из /usr/php56libs

решение3

Войдите на свой сервер через SSH. Убедитесь, что вы находитесь в домашнем каталоге пользователя. Найдите версию, которую хотите установить. Распакуйте файл. Перейдите в этот новый каталог. Откройте свой .bash_profile с помощью nano или vim. Например: Добавьте требуемый файл в .bash и обновите. Обновите свой .bash_profile, чтобы активировать новую конфигурацию. Проверьте местоположение и версию curl.

Связанный контент