Como descubro o número da versão de uma biblioteca instalada?

8

Pergunta relevante para RedHat / CentOS. Estou um pouco confuso entre o pacote e a biblioteca e como fixá-los em uma versão fixa.

Há um bug de rolagem X11 nas versões recentes da libxcb que afeta meus programas em C. A libxcb-1.5-1 não tem esse bug.

Então eu fiz:

# yum remove libxcb-devel
# rpm -Uvh --oldpackage libxcb-1.5-1.el6.i686.rpm 

E agora o bug desapareceu e meu software funciona bem.

Avance algumas semanas e o bug está de volta.

# 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

Mas a versão instalada ou a versão está disponível através do repo? Como posso saber qual versão do libxcb está instalada atualmente?

$ 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]

Então estou confuso entre o número da versão mostrado pelo yum, o número no .so e o número que eu quero ...

    
por dargaud 24.08.2015 / 16:40

2 respostas

9

Se você quiser saber qual versão está instalada , basta executar:

rpm -q libxcb-devel

Se você quiser evitar atualizações neste pacote, poderá adicionar o pacote à configuração yum exclude . Adicione o seguinte à seção main em /etc/yum.conf :

exclude=libxcb-devel

A versão da biblioteca (por exemplo, em libxcb.so.1.1.0 ) raramente rastreia a versão do pacote e destina-se a acompanhar as alterações da API.

    
por 24.08.2015 / 17:50
1
# yum remove libxcb-devel
# rpm -Uvh --oldpackage libxcb-1.5-1.el6.i686.rpm 

Estes são dois pacotes diferentes. A versão -devel é para compilar, o pacote libxcb sem -devel é o que os aplicativos serão executados.

Porque você removeu a versão -devel que não há nada instalado, então "yum info" mostra apenas a última versão disponível (você pode usar a opção --showduplicates para ver todas as versões). Se você quiser parar a atualização, eu recomendo instalar / usar o plugin versionlock no pacote libxcb ... embora seja feito manualmente usando exclusões.

Use também o rpm diretamente, você pode simplesmente usar: yum downgrade blah.rpm

    
por 25.08.2015 / 23:41