Al actualizar python2 a python3 en el sistema centos7, encontrará una versión anterior de zlib. Solicitar actualizar a la nueva versión 1.2.11. La siguiente es la actualización de zlib en centos.
- Primero verifique la versión de zlib en el sistema.
yum info zlib
Si ve que su versión de zlib es 1.2.7, puede actualizar a 1.2.11 según sea necesario. - Use los siguientes comandos de Linux para tener éxito de una vez:
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11
cd zlib-1.2.11
./configure --libdir=/lib64/
Nota: Aquí no hemos agregado --prefix = / usr / local / zlib directorio de preinstalación, solo agregamos la ruta de generación de archivos de biblioteca --libdir = / lib64 /
- Linux predetermina algunos enlaces suaves sobre directorios:
ls -ld /var/*
compilar:make
instalar:make install
Nota: En el resultado, se puede ver que el paso de instalación de la instalación es en realidad una distribución de los archivos relacionados con zlib compilados y generados, es decir, los archivos compilados se copian en la ruta correspondiente. Cuando hacemos el paquete de instalación de actualización fuera de línea, copiamos directamente estos comandos Añadir al guión!
- Desinstale el paquete zlib original para completar la actualización de zlib
#rpm -qa | grep zlib | xargs rpm -e --nodeps
#rm -f /lib64/libz.so.1.2.7
Nota: El orden de desinstalación de zlib es muy importante. Si la desinstala antes, make fallará en el paso anterior. Aviso: el archivo de biblioteca de zlib, libz.so * no está disponible, y la compilación no se puede completar.
La biblioteca básica zlib es muy importante. Una vez que se bloquea, hará que muchos comandos básicos no se puedan usar y el servidor no se reiniciará.
- Actualice el archivo de biblioteca del sistema.
ldconfig
ll /lib64/libz.*
Como puede ver en lo anterior, el nuevo archivo de biblioteca con --libdir = / lib64 / se coloca directamente en el directorio / lib64 / al compilar. - Si solo esta máquina está instalada, este es el final. Si desea actualizar zlib en varias máquinas. El siguiente es el método para hacer un paquete de instalación de actualización sin conexión
# vim zlib-1.2.11/zlibUpgrade.sh
##################################################
#!/bin/bash
parent_path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )
cd "$parent_path"
rm -f /lib64//libz.a
cp libz.a /lib64/
chmod 644 /lib64//libz.a
cp libz.so.1.2.11 /lib64/
chmod 755 /lib64//libz.so.1.2.11
rm -f /usr/local/share/man/man3/zlib.3
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3
rm -f /lib64//pkgconfig/zlib.pc
cp zlib.pc /lib64//pkgconfig
chmod 644 /lib64//pkgconfig/zlib.pc
rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
rpm -qa | grep zlib | xargs rpm -e --nodeps
rm -rf /lib64/libz.so.1.2.7
ldconfig
ls -l /lib64/libz*
######################################################
chmod +x zlib-1.2.11/zlibUpgrade.sh
tar -zcf zlib-1.2.11Upgrade.tar.gz zlib-1.2.11
Si necesita actualizar otras máquinas en lotes, no es necesario compilarlo e instalarlo en cada máquina, copie zlib-1.2.11Upgrade.tar.gz y descomprima el script de ejecución para completar la actualización.
También puede convertirlo en un libro de jugadas ansible y usar ansible para completar la instalación de la actualización por lotes.
- Use otros paquetes fuera de línea para actualizar zlib en otras máquinas
# tar -zxf zlib-1.2.11Upgrade.tar.gz
# cd zlib-1.2.11
# sh -x zlibUpgrade.sh
# ll /lib64/libz.*
Si te gusta esta publicación de blog, dale me gusta.