¿Es posible instalar y usar dos versiones diferentes de glibc en la misma máquina? ¿Dónde una versión solo se usa para ejecutar software heredado, que se basa en archivos binarios glibc antiguos?
¿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 terriblemente
Respuesta aceptada:
Si es posible. Deberá tener mucho cuidado con las rutas de carga de la biblioteca y es posible que deba volver a compilar 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, haga un directorio, digamos /old/etch
, e instale la distribución anterior en el árbol arraigado allí; para ejecutar ese programa problemático, llame a chroot
para 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 necesita su programa, no servidores). Luego configure schroot para ejecutar el programa convenientemente (con /dev
, /proc
, /home
y otros sistemas de archivos "satélite" accesibles).
Así que el plan es:debootstrap, luego dchroot. En ¿Cómo ejecuto programas de 32 bits en un Debian/Ubuntu de 64 bits?, ofrezco un tutorial sobre una configuración similar, ya sea que esté ejecutando diferentes versiones de la distribución, diferentes arquitecturas o diferentes distribuciones similares a Debian, solo es cuestión de seleccionar la fuente del paquete adecuada, el resto es igual.