Điểm:0

Debian: làm cách nào để đặt hai phiên bản libcurl trên một hệ thống?

lá cờ jp

Tôi đang cố di chuyển hai ứng dụng web trên một máy chủ (debian10), cả hai đều yêu cầu các phiên bản php khác nhau và cả hai đều yêu cầu tiện ích mở rộng cURL để hoạt động bình thường.

php5.6-curl sử dụng libcurl v3

php8.1-curl sử dụng libcurl v4

Đầu tiên, tôi đã cài đặt php5.6-curl và khi tôi cố cài đặt php8.1-curl - apt ném thông báo rằng Các gói sau có các phụ thuộc chưa được đáp ứng: php8.1-curl : Phụ thuộc: libcurl4 (>= 7.56.1) nhưng nó sẽ không được cài đặt

Nếu tôi sử dụng -f trên apt, nó sẽ loại bỏ php5.6-curl...

Cách thanh lịch nhất để làm cho hai thư viện libcurl đó có sẵn trên một hệ thống là gì?

Cảm ơn, Robert

chỉnh sửa: Theo như tôi thấy, vấn đề là libcurl3 và libcurl4 chia sẻ cùng một tệp /usr/lib/x86_64-linux-gnu/libcurl.so.4 và nó thay đổi khi gói được cài đặt lại (libcurl3<->libcurl4). php[5.6,8.1]-fpm cố tải thư viện, thư viện có phiên bản libcurl.so.4 không đúng và php không thể sử dụng mô-đun đó.

Có thể có một phương pháp tao nhã để buộc các tệp nhị phân 4eg php5-curl sử dụng thư viện từ đường dẫn do người dùng xác định?

Điểm:1
lá cờ in

Đặt cả hai ứng dụng vào một thùng chứa mọi thứ nó cần.

Robert Grubba avatar
lá cờ jp
thật không may, tôi không được phép sử dụng vùng chứa trong dự án đó ...
Nikita Kipriyanov avatar
lá cờ za
Bạn có chắc bạn đang ở trong môi trường kinh doanh?
Điểm:0
lá cờ jp

Tôi đã tự mình tìm ra cách giải quyết, nếu bạn muốn giải quyết vấn đề tương tự, bạn có thể đi theo cách của tôi, không phải là cách thanh lịch nhất.

  1. cài đặt tất cả các gói php5.6 cần thiết;
  2. sao chép thư mục /usr/lib sang /usr/php56libs
  3. chỉnh sửa tệp dịch vụ systemd trong trường hợp của tôi: chỉnh sửa systemctl --full php5.6-fpm
  4. Dưới dịch vụ phần thêm biến Môi trường: Môi trường="LD_LIBRARY_PATH=/usr/php56libs"
  5. bây giờ bạn có thể cài đặt tất cả các gói php8.1 với apt (có hiệu lực -f tùy chọn), nó sẽ xóa tất cả các lib xung đột khỏi/usr/lib nhưng không thành vấn đề vì dịch vụ php5.6-fpm sẽ sử dụng các lib xung đột từ/usr/php56libs
lá cờ in
PHP 5.6 đã hết hạn sử dụng vào **2018**. Nó đã không nhận được cập nhật bảo mật kể từ đó. Chạy phần mềm lỗi thời rất nguy hiểm, sử dụng vùng chứa ít nhất sẽ thêm một lớp bảo mật khác để ngăn leo thang đặc quyền.
Điểm:-2
lá cờ ru

Đăng nhập vào máy chủ của bạn thông qua SSH. Đảm bảo rằng bạn đang ở trong thư mục chính của người dùng. Định vị phiên bản bạn muốn cài đặt Giải nén tập tin. Điều hướng vào thư mục mới này. Mở .bash_profile của bạn bằng nano hoặc vim. Ví dụ: Thêm tệp cần thiết vào .bash và cập nhật Cập nhật .bash_profile của bạn để kích hoạt cấu hình mới của bạn. Kiểm tra vị trí và phiên bản của curl

lá cờ in
Điều đó không có ý nghĩa gì cả.
Robert Grubba avatar
lá cờ jp
Tôi không chắc nó sẽ giúp ích như thế nào trong vấn đề của tôi. Theo những gì tôi thấy, vấn đề là libcurl3 và libcurl4 chia sẻ cùng một tệp ```/usr/lib/x86_64-linux-gnu/libcurl.so.4```và nó thay đổi khi gói được khôi phục (libcurl3libcurl4) . php[5.6,8.1]-fpm cố tải thư viện, thư viện có phiên bản libcurl.so.4 không đúng và php không thể sử dụng mô-đun đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.