Pregunta:
Pregunta relevante para RedHat / CentOS. Estoy un poco confundido entre el paquete y la biblioteca y cómo anclarlos a una versión fija.
Hay un error de sustitución de X11 en las versiones recientes de libxcb que afecta a mis programas C. libxcb-1.5-1 no tiene ese error.
Así que lo hice:
# yum remove libxcb-devel
# rpm -Uvh --oldpackage libxcb-1.5-1.el6.i686.rpm
Y ahora el error se ha ido y mi software funciona bien.
Avance rápido unas semanas y el error ha vuelto.
# yum info libxcb-devel
Loaded plugins: refresh-packagekit, security
Available Packages
Name : libxcb-devel
Arch : i686
Version : 1.9.1
Release : 2.el6
Size : 1.0 M
Repo : sl-security
¿Pero es esa la versión instalada o la versión disponible a través del repositorio? ¿Cómo puedo saber qué versión de libxcb está instalada actualmente?
$ ll /usr/lib/libxcb.so*
lrwxrwxrwx 1 root root 15 Aug 6 03:38 /usr/lib/libxcb.so.1 -> libxcb.so.1.1.0*
-rwxr-xr-x 1 root root 130752 Oct 14 2014 /usr/lib/libxcb.so.1.1.0*
$ readelf -d /usr/lib/libxcb.so.1.1.0 | grep SONAME
0x0000000e (SONAME) Library soname: [libxcb.so.1]
Entonces estoy confundido entre el número de versión que muestra yum, el número en el .so y el número que quiero …
Respuesta:
Si desea saber qué versión está instalada , simplemente ejecute:
rpm -q libxcb-devel
Si desea evitar actualizaciones de este paquete, puede agregar el paquete a la configuración de exclude
yum. Agregue lo siguiente a la sección main
en /etc/yum.conf
:
exclude=libxcb-devel
La versión de la biblioteca (por ejemplo, en libxcb.so.1.1.0
) raras veces rastrea la versión del paquete y está destinada a rastrear los cambios de API.