Instalowanie dwóch glibc wraz z debian / ubuntu


15

Czy można zainstalować i używać dwóch różnych wersji glibc na tym samym komputerze? Gdzie jedna wersja służy tylko do uruchamiania starszego oprogramowania, które opiera się na starych plikach binarnych glibc?

Czy można to zrobić za pomocą menedżera pakietów (coś w rodzaju „zainstaluj ten pakiet i jego zależności /opt/old-glibc, zamiast) zamiast zarządzać nim tragicznie?


4
Musi być, ale ... och, tyle bólu.
tshepang

Być może, ale musisz podać więcej szczegółów. Jakiego systemu operacyjnego (wersja Debian / Ubuntu), a co ważniejsze, czym jest starsze oprogramowanie i jakiej wersji libc używa? Myślę, lddże coś ci powie. Jeśli to możliwe, może być konieczne ponowne skompilowanie starszej biblioteki libc i / lub instalacja / rekompilacja pakietów pomocniczych. W zależności od wieku Twojej aplikacji może to być trudne. Widzę prąd Debian libc6zależy libc-bin (= 2.13-0exp5)i libgcc1tak libc6nie ma wiele zależności, ale można nadal napotkasz problemy.
Faheem Mitha

Odpowiedzi:


8

Tak, to możliwe. Musisz być bardzo ostrożny ze ścieżkami ładowania bibliotek i może być konieczne ponowne skompilowanie niektórych innych bibliotek.

Jako ścieżkę najmniejszego tarcia zalecam zainstalowanie starszej wersji Debiana lub Ubuntu w chroot . To znaczy, stwórz katalog, powiedzmy /old/etch, i zainstaluj starszą dystrybucję w zrootowanym tam drzewie; aby uruchomić ten problematyczny program, wywołaj, chrootaby ograniczyć jego widok systemu plików do /old/etch.

Debian (lub Ubuntu) zawiera pakiet ułatwiający instalację innego systemu w chroot: schroot (następca dchroot). Najpierw użyj debootstrap, aby zainstalować starszą dystrybucję (zainstaluj tylko system podstawowy i to, czego potrzebuje Twój program, bez serwerów). Następnie skonfigurować złom, aby uruchomić program wygodnie (z /dev, /proc, /homei innych „satelita” systemy plików dostępne).

Więc plan jest taki: debootstrap, potem dchroot. W Jak uruchomić 32-bitowe programy na 64-bitowym systemie Debian / Ubuntu? , Daję tutorial o podobnej konfiguracji - bez względu na to, czy używasz różnych wersji dystrybucji, różnych architektur, czy różnych dystrybucji podobnych do Debiana, to tylko kwestia wyboru odpowiedniego źródła pakietu, reszta jest taka sama.


Jeśli ktoś ma już zainstalowaną nowszą wersję, czy może zacząć od tej, a następnie zainstalować starszą wersję w /old/etch?
n611x007,

@naxa Tak, w rzeczywistości jest to sytuacja opisana tutaj, ale działa to w ten sam sposób, jeśli pójdziesz na odwrót (nowsze chrootowane w starszych). W rzeczywistości napisałem samouczek debootstrap / schroot kilka dni po napisaniu tej odpowiedzi, dodałem link.
Gilles 'SO - przestań być zły'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.