Instalar dos glibc junto a debian / ubuntu

15

¿Es posible instalar y usar dos versiones diferentes de glibc en la misma máquina? ¿Dónde solo se usa una versión para ejecutar software heredado, que se basa en viejos binarios de glibc?

¿Es posible hacerlo con la ayuda del administrador de paquetes (algo así como "instalar este paquete y sus dependencias, en /opt/old-glibc), en lugar de administrarlo directamente

Elazar Leibovich
fuente
44
Debe ser, pero ... oh, mucho dolor.
tshepang
Posiblemente, pero tendrá que dar más detalles. ¿Qué sistema operativo (versión de Debian / Ubuntu) con precisión, y de manera más importante, cuál es el software heredado y qué versión de libc utiliza? Creo que lddte diría algo. Si es posible, es posible que deba recompilar la biblioteca libc heredada y / o instalar / recompilar paquetes de soporte. Dependiendo de la antigüedad de su aplicación, esto podría ser complicado. Veo que Debian actual libc6depende libc-bin (= 2.13-0exp5)y libgcc1, por libc6lo tanto , no tiene muchas dependencias, pero aún podría tener problemas.
Faheem Mitha

Respuestas:

8

Si es posible. Tendrá que tener mucho cuidado con las rutas de carga de la biblioteca, y es posible que deba recompilar algunas otras bibliotecas.

Como el camino de menor fricción, recomiendo instalar una versión anterior de Debian o Ubuntu en un chroot . Es decir, crea un directorio, por ejemplo /old/etch, e instala la distribución anterior en el árbol enraizado allí; para ejecutar ese programa problemático, llame chrootpara restringir su vista del sistema de archivos a /old/etch.

Debian (o Ubuntu) viene con un paquete para ayudar a instalar otro sistema en un chroot: schroot (sucesor de dchroot). Primero, use debootstrap para instalar la distribución anterior (instale solo el sistema base y lo que su programa necesita, no servidores). A continuación, configure schroot para ejecutar el programa convenientemente (con /dev, /proc, /homey otros “satélite” sistemas de archivos accesibles).

Entonces el plan es: debootstrap, luego dchroot. En ¿Cómo ejecuto programas de 32 bits en un Debian / Ubuntu de 64 bits? , Doy un tutorial sobre una configuración similar: ya sea que esté ejecutando diferentes versiones de la distribución, o diferentes arquitecturas, o diferentes distribuciones similares a Debian, solo es cuestión de seleccionar la fuente de paquete adecuada, el resto es lo mismo.

Gilles 'SO- deja de ser malvado'
fuente
Si uno ya tiene instalada la versión más nueva, ¿puede comenzar desde esa y luego, además de la más nueva, instalar la anterior /old/etch?
n611x007
@naxa Sí, de hecho, esa es la situación que se describe aquí, pero funciona de la misma manera si se hace al revés (más nuevo se chrooteó en el más antiguo). De hecho, escribí un tutorial de debootstrap / schroot unos días después de escribir esta respuesta, agregué el enlace.
Gilles 'SO- deja de ser malvado'