Điểm:0

Cài đặt thư viện hệ thống 20.04 trong 21.10

lá cờ ve

Tôi đang đối mặt với một vấn đề kỳ lạ. Tôi phát triển các ứng dụng Qt/C++. Cho đến ngày hôm qua, máy phát triển của tôi và máy mục tiêu đều chạy Ubuntu 20.04.

Hôm qua tôi đã phải nâng cấp máy dev của mình lên 21.10 để chạy một phần mềm cụ thể. Thật không may, điều này đã phá vỡ khả năng tương thích của các tệp thực thi của tôi:

./MyProject: /lib/x86_64-linux-gnu/libc.so.6: không tìm thấy phiên bản `GLIBC_2.34' (do ./MyProject yêu cầu)
./MyProject: /lib/x86_64-linux-gnu/libc.so.6: không tìm thấy phiên bản `GLIBC_2.32' (do ./MyProject yêu cầu)
./MyProject: /lib/x86_64-linux-gnu/libstdc++.so.6: không tìm thấy phiên bản `GLIBCXX_3.4.29' (do ./MyProject yêu cầu)

Tôi không thể:

  • nâng cấp máy mục tiêu
  • hạ cấp máy dev của tôi
  • sử dụng máy ảo (thực ra thì tôi có thể, nhưng tôi đang cố gắng tránh nó)

vì vậy tôi tự hỏi liệu tôi có thể cài đặt các thư viện hệ thống của 20.04 trong 21.10 của mình và yêu cầu QtCreator sử dụng bộ thư viện này hoặc bộ thư viện đó, như đối với các phiên bản Qt.

ChanganAuto avatar
lá cờ us
*Frankensystems* không bao giờ là một ý kiến ​​hay...
David avatar
lá cờ cn
Không, nếu bạn mong đợi nó hoạt động. Đã đến lúc sử dụng VM.
lá cờ ve
@David trong nhiều năm tôi đã sử dụng máy ảo nhưng tôi phát chán với chúng... Tôi muốn sử dụng các công cụ chạy trong hệ thống của mình... Vì vậy, cả hai bạn đều nói rằng không thể chạy một ứng dụng cho cùng một kiến ​​trúc, cùng một bản phân phối, nhưng chỉ là một phiên bản trước/tiếp theo?
mchid avatar
lá cờ bo
Có nhiều cách để ứng dụng của bạn sử dụng một thư viện thay thế để nó không phá vỡ hệ thống bằng cách giữ nguyên các lib mặc định và chỉ cần gọi các thư viện cần thiết khi bạn chạy tệp thực thi. [Câu trả lời này có vẻ an toàn](https://stackoverflow.com/a/47115598/3393576). Bạn **không** muốn thay thế các tệp glibc hiện tại của mình và cũng **không** `xuất` cho toàn bộ hệ thống của mình.
mchid avatar
lá cờ bo
Bạn muốn hệ thống của mình chạy các lib glibc mặc định nhưng chỉ tệp thực thi mới sử dụng các lib thay thế.
Điểm:3
lá cờ cn

Nâng cấp một ứng dụng duy nhất ngoài ban nhạc không bao giờ là một ý tưởng tốt, đặc biệt là về glibc.

Đối với các công cụ xây dựng, tốt cách để giải quyết vấn đề đó là sử dụng bộ chứa Docker.

Hạ cấp là một tùy chọn nhưng yêu cầu cài đặt sạch và nâng cấp lên 21.10 không được khuyến nghị, vì 20.04 là bản phân phối thực tế được hỗ trợ tốt và dù sao thì 21.10 cũng ở gần EoL

lá cờ ve
Bạn đang nói về những thứ này? https://www.docker.com/resources/what-container
Nicolas Formichella avatar
lá cờ cn
Có @Mark, docker là một trong *cách tốt nhất* để xây dựng bộ công cụ vì bạn có thể chạy bất kỳ Ubuntu nào từ 14.04 (không được khuyến nghị) cho đến phiên bản beta của 22.04 LTS mà không cần chạm vào hệ thống của bạn
lá cờ ve
Nếu tôi hiểu chính xác thì đây chỉ là để triển khai. Tuy nhiên, tôi không thể gỡ lỗi.
Nicolas Formichella avatar
lá cờ cn
Vâng, chính xác là @Mark, nó dành cho bộ công cụ xây dựng
Điểm:1
lá cờ zw

Nhắm mục tiêu khi phát hành tạm thời là không thực tế.
Để giảm bớt quy trình làm việc, bạn phải sử dụng phiên bản Hỗ trợ dài hạn trên cả máy phát triển và máy khách.

Hiện tại LTS mới nhất là 20.04 LTS, như bạn đã biết.

Ngoài ra, bạn có thể đợi đến tháng 4 năm 2022 rồi nhắm mục tiêu cả hai máy vào ngày 22.04 LTS. Điều này sẽ cho phép sử dụng hoàn hảo ứng dụng của bạn cho đến năm 2027.

lá cờ ve
Đó sẽ là phù hợp nhất cho nhu cầu hiện tại của tôi. Dù sao đi nữa, tôi đã học được cách hoạt động của Linux một cách khó khăn.

Đă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.