Встановлення двох glibc поряд з debian / ubuntu


15

Чи можливо встановити та використовувати дві різні версії glibc на одній машині. Де одна версія використовується лише для запуску застарілого програмного забезпечення, яке спирається на старі бінарні файли glibc?

Чи можна це зробити за допомогою диспетчера пакунків (щось на кшталт "встановити цей пакет та його залежності до" /opt/old-glibc), а не керувати ним


4
Має бути, але ... о, стільки болю.
thepang

Можливо, але вам потрібно надати більше деталей. Яка ОС (версія Debian / Ubuntu) саме та більш чітко, що таке застаріле програмне забезпечення та яка версія libc використовується? Я думаю ldd, сказав би вам щось. Якщо можливо, вам може знадобитися перекомпілювати застарілу бібліотеку libc та / або встановити / перекомпілювати підтримуючі пакети. Залежно від віку вашої програми, це може стати складним. Я бачу струму Debian libc6залежить від libc-bin (= 2.13-0exp5)і libgcc1, тому libc6не має багато залежностей, але ви все ще можете зіткнутися з проблемами.
Faheem Mitha

Відповіді:


8

Так, це можливо. Вам доведеться бути дуже обережними з шляхами завантаження бібліотеки, і вам може знадобитися перекомпілювати деякі інші бібліотеки.

Як шлях найменшого тертя, я рекомендую встановити стару версію Debian або Ubuntu в chroot . Тобто, складіть каталог, скажімо /old/etch, і встановіть старший дистрибутив у вкоріненому там дереві; для запуску цієї проблемної програми зателефонуйте, chrootщоб обмежити її перегляд файлової системи /old/etch.

Debian (або Ubuntu) постачається з пакетом для встановлення іншої системи в chroot: schroot (наступник dchroot). По-перше, використовуйте debootstrap для встановлення старого дистрибутива (встановіть лише базову систему та те, що потрібно вашій програмі, без серверів). Потім встановіть schroot запустити програму зручно (з /dev, /proc, /homeта інші «супутник» файлові системи доступні).

Отже план такий: debootstrap, тоді dchroot. В Як запустити 32-бітові програми на 64-бітної Debian / Ubuntu? , Я даю підручник щодо подібних налаштувань - незалежно від того, чи використовуєте ви різні версії дистрибутива, чи різні архітектури, або різні дистрибутиви, подібні Debian, лише питання вибору відповідного джерела пакета, решта - те саме.


Якщо в когось вже встановлена ​​нова версія, чи може він почати з цього, а потім, крім нової, встановити старішу версію /old/etch?
n611x007

@naxa Так, насправді така ситуація описана тут, але вона працює аналогічно, якщо ви йдете навпаки (новіші, що старіші). Насправді я написав підручник з дебоотстрапа / шроту через кілька днів після написання цієї відповіді, я додав посилання.
Жил 'SO- перестань бути злим'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.