Puncte:0

Debian: cum să pun două versiuni de libcurl pe un sistem?

drapel jp

Încerc să migrez două aplicații web pe un singur server (debian10), ambele necesită versiuni diferite de php și ambele necesită extensii cURL pentru a funcționa corect.

php5.6-curl folosește libcurl v3

php8.1-curl folosește libcurl v4

În primul rând, am instalat php5.6-curl, iar când am încercat să instalez php8.1-curl - apt trimite o notificare că Următoarele pachete au dependențe neîndeplinite: php8.1-curl : Depinde: libcurl4 (>= 7.56.1) dar nu va fi instalat

Dacă folosesc -f pe apt, elimină php5.6-curl...

Care este cel mai elegant mod de a face aceste două biblioteci libcurl disponibile pe un singur sistem?

Mulțumiri, Robert

Editați | ×: Din câte văd, problema este că libcurl3 și libcurl4 partajează același fișier /usr/lib/x86_64-linux-gnu/libcurl.so.4 și se schimbă când pachetul este reinstalat (libcurl3<->libcurl4). php[5.6,8.1]-fpm încearcă să încarce biblioteca, cea care primește versiunea incorectă libcurl.so.4 eșuează și php nu poate folosi acel modul.

Poate că există o metodă elegantă pentru a forța binarele 4eg php5-curl să folosească biblioteca din calea definită de utilizator?

Puncte:1
drapel in

Pune ambele aplicații într-un container care conține tot ce are nevoie.

Robert Grubba avatar
drapel jp
din păcate, nu am voie să folosesc containere în acel proiect...
Nikita Kipriyanov avatar
drapel za
Ești sigur că te afli într-un mediu de afaceri?
Puncte:0
drapel jp

Am găsit singur o soluție, dacă doriți să rezolvați o problemă similară, puteți merge pe calea mea, nu cea mai elegantă.

  1. instalați toate pachetele php5.6 necesare;
  2. copiați directorul /usr/lib în /usr/php56libs
  3. editați fișierul de serviciu systemd în cazul meu: systemctl edit --full php5.6-fpm
  4. sub serviciu secțiunea adăugați variabila de mediu: Environment="LD_LIBRARY_PATH=/usr/php56libs"
  5. acum puteți instala toate pachetele php8.1 cu apt (cu forța -f opțiunea) va elimina toate bibliotecile aflate în conflict din /usr/lib, dar nu contează deoarece serviciul php5.6-fpm le va folosi pe cele din /usr/php56libs
drapel in
PHP 5.6 și-a atins sfârșitul vieții în **2018**. Nu a mai primit actualizări de securitate de atunci. Rularea de software învechit este periculoasă, utilizarea containerelor ar adăuga cel puțin un alt nivel de securitate pentru a preveni escaladarea privilegiilor.
Puncte:-2
drapel ru

Conectați-vă la serverul dvs. prin SSH. Asigurați-vă că vă aflați în directorul principal al utilizatorului. Găsiți versiunea pe care doriți să o instalați Dezarhivați fișierul. Navigați în acest nou director. Deschideți .bash_profile folosind nano sau vim. De exemplu: Adăugați fișierul necesar în .bash și actualizați Actualizați-vă .bash_profile pentru a vă activa noua configurație. Verificați locația și versiunea curlului

drapel in
Asta nu are deloc sens.
Robert Grubba avatar
drapel jp
Nu sunt sigur cu ce m-ar ajuta în problema mea. Din câte văd, problema este că libcurl3 și libcurl4 partajează același fișier ```/usr/lib/x86_64-linux-gnu/libcurl.so.4``` și se schimbă când pachetul este reinstalat (libcurl3libcurl4) . php[5.6,8.1]-fpm încearcă să încarce biblioteca, cea care primește versiunea incorectă libcurl.so.4 eșuează și php nu poate folosi acel modul.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.