Cài đặt hai glibc cùng với debian / ubfox


14

Có thể cài đặt và sử dụng hai phiên bản glibc khác nhau trên cùng một máy. Trường hợp một phiên bản chỉ được sử dụng để chạy phần mềm cũ, dựa trên các tệp nhị phân cũ?

Có thể làm điều đó với sự trợ giúp của người quản lý gói (một cái gì đó như "cài đặt gói này và các phụ thuộc của nó /opt/old-glibc, thay vì quản lý nó không


4
Phải, nhưng ... ôi, đau quá.
tshepang

Có thể, nhưng bạn sẽ cần cung cấp thêm chi tiết. Hệ điều hành nào (phiên bản Debian / Ubuntu) chính xác và quan trọng hơn là phần mềm kế thừa là gì và nó sử dụng phiên bản libc nào? Tôi nghĩ rằng lddsẽ cho bạn biết một cái gì đó. Nếu có thể, bạn có thể cần biên dịch lại thư viện libc cũ và / hoặc cài đặt / biên dịch lại các gói hỗ trợ. Tùy thuộc vào độ tuổi của ứng dụng của bạn, điều này có thể trở nên khó khăn. Tôi thấy Debian hiện tại libc6phụ thuộc libc-bin (= 2.13-0exp5)libgcc1, vì vậy libc6không có nhiều phụ thuộc, nhưng bạn vẫn có thể gặp vấn đề.
Faheem Mitha

Câu trả lời:


8

Vâng nó có thể. Bạn sẽ phải rất cẩn thận với các đường dẫn tải thư viện và bạn có thể cần phải biên dịch lại một số thư viện khác.

Là đường dẫn ít ma sát nhất, tôi khuyên bạn nên cài đặt phiên bản cũ hơn của Debian hoặc Ubuntu trong một chroot . Đó là, tạo một thư mục, nói /old/etchvà cài đặt bản phân phối cũ hơn trong cây gốc ở đó; để chạy chương trình có vấn đề đó, hãy gọi chrootđể hạn chế chế độ xem hệ thống tập tin của nó /old/etch.

Debian (hoặc Ubuntu) đi kèm với một gói để hỗ trợ cài đặt một hệ thống khác trong chroot: schroot (kế thừa của dchroot). Đầu tiên, sử dụng debootstrap để cài đặt bản phân phối cũ hơn (chỉ cài đặt hệ thống cơ sở và những gì chương trình của bạn cần, không có máy chủ). Sau đó thiết lập schroot để chạy các chương trình thuận tiện (với /dev, /proc, /homevà các “vệ tinh” hệ thống tập tin truy cập).

Vì vậy, kế hoạch là: debootstrap, sau đó là dchroot. Trong Làm cách nào để tôi chạy các chương trình 32 bit trên Debian / Ubuntu 64 bit? , Tôi đưa ra một hướng dẫn về một thiết lập tương tự - cho dù bạn đang chạy các phiên bản phân phối khác nhau, hoặc các kiến ​​trúc khác nhau hoặc các bản phân phối giống như Debian khác nhau, thì chỉ là vấn đề chọn nguồn gói phù hợp, phần còn lại đều giống nhau.


Nếu một cái đã được cài đặt phiên bản mới hơn, anh ta có thể bắt đầu từ đó không, sau đó, trên phiên bản mới hơn, cài đặt phiên bản cũ hơn vào /old/etch?
n611x007

@naxa Vâng, trên thực tế, đó là tình huống được mô tả ở đây, nhưng nó hoạt động theo cách tương tự nếu bạn đi theo cách khác (mới hơn trong trường hợp cũ hơn). Trên thực tế tôi đã viết một hướng dẫn debootstrap / schroot vài ngày sau khi viết câu trả lời này, tôi đã thêm liên kết.
Gilles 'SO- ngừng trở nên xấu xa'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.