¿Cuál es un método eficaz para instalar software actualizado en una máquina de producción obsoleta?

¿Cuál es un método eficaz para instalar software actualizado en una máquina de producción obsoleta?

Mi empresa utiliza un pequeño clúster obsoleto (CentOS 5.4) para realizar cálculos numéricos (cálculos de elementos finitos para ser más específicos). Están usando un paquete comercial y no tienen idea de Linux. No quieren cambiar nada en las máquinas mientras estén en funcionamiento, lo cual acepto como una política de tiempo efectivo. sínotener derechos administrativos.

Puedo hacer que instalen paquetes más pequeños, pero no cambiar, por ejemplo, la versión de Python de 2.4 a 2.6+, así que decidí compilar la versión actual ( ./configure --prefix=/home/mysuser/root2) y encontré algunos problemas con las dependencias (versión incorrecta de, por ejemplo, readline, zlib, curses , bz2... o paquetes no encontrados). También necesito actualizar gcc, que se queja de que falta GMPy .MPFRMPC

La razón para hacer esto es que me gustaría compilar otro software de prueba para ejecutarlo en estas máquinas. ¿Qué puedo hacer para instalar eficazmente los paquetes que necesito para poder compilar el software con el que necesito trabajar? estoy en otro lugar usandoarchlinuxy me resultaría muy útil poder hacer algo parecido

pacman --root /home/myuser/root2 -S <package>

Pero no tengo idea de si esto es posible o inteligente.

Otras preguntas SE relacionadas:prefijo gentooypaqueteParece que no es tan fácil (aunque puede que me equivoque).

Respuesta1

Su administración es prudente al no intentar actualizar un clúster en funcionamiento que realiza una función importante basada en un paquete propietario.

Los paquetes de backport requieren mucho tiempo y son riesgosos, es decir, no siempre son factibles. Puede evitar la penalización de tiempo si puede encontrar los paquetes que desea instalar en el repositorio original de CentOS 5.4 o en algún repositorio de backport de CentOS 5.4. Si bien puede tener varias versiones de GCC en un host al mismo tiempo (los sistemas integrados/compilación cruzada hacen esto todo el tiempo), no es trivial tener más de un glibc en un único entorno de ejecución.

Por lo tanto, es mejor que trabaje en un entorno nuevo e independiente que tenga los paquetes que necesita y que encuentre alguna forma de probar el resultado del entorno antiguo en el nuevo. En cualquier caso, no se arriesgue a romper nada en el entorno anterior o puede que necesite todos los puntos de reputación de stackexchange.com que pueda conseguir para encontrar su próximo trabajo ;-)

Respuesta2

Instalar paquetes desde distribuciones suele ser difícil cuando no tienes permisos de root, ya que asumen un diseño de directorio fijo y el sistema de dependencia tiende a requerir algunos paquetes con programas setuid o setgid que no puedes instalar como no root.

Compilar desde el código fuente suele ser la forma más sencilla. (Y si busca velocidad, puede elegir las mejores opciones de compilación para su modelo de procesador en particular).

Para organizar los paquetes que compilas (o instalas extrayendo archivos tar), recomiendo usarestibaro el más poderoso pero más complejoxestow. Su modo básico de operación es instalar cada paquete en un directorio separado y luego crear enlaces simbólicos para juntarlos todos. A continuación se muestra una sesión típica de compilación e instalación con stow:

tar xzf foobar-42.tar.gz
cd foobar-42
./configure --prefix=~/software/stow/foobar-42
make
make install
cd ~/software/stow
stow foobar-42

Ese último comando crea enlaces simbólicos desde archivos y directorios ~/software/stowbajo ~/software. Por ejemplo, si ~/software/stow/foobar-42contiene un lib/foobardirectorio y archivos bin/foobary man/man1/foobar.1, terminará con enlaces simbólicos.

~/software/bin/foobar -> ../stow/foobar-42/bin/foobar
~/software/lib/foobar -> ../stow/foobar-42/lib/foobar
~/software/man/man1/foobar.1 -> ../../stow/foobar-42/man/man1/foobar.1

Para desinstalar un programa, ejecútelo stow -D foobar-42en el ~/software/stowdirectorio y elimine el archivo ~/software/stow/foobar-42. Para hacer que un programa no esté disponible temporalmente (por ejemplo, para probar otra versión), simplemente ejecute la stow -Dparte.

Ver tambiénAdministradores de paquetes no raíz;¿La mejor manera de actualizar vim/gvim a 7.3 en Ubuntu 10.04?

información relacionada