yum: os mesmos pacotes em dois repositórios, força para instalar o pacote de um repo diferente

3

Estou desenvolvendo um plugin do PostgresDB. O plugin está sendo executado no Postgres in Centos 6.3. Para poder compilar meu projeto, tive que instalar algumas das bibliotecas do repositório epel e algumas do rpmforge. Interessantemente, alguns dos pacotes são duplicados em ambos os repositórios, por exemplo:

# yum whatprovides postgis

Loaded plugins: fastestmirror, presto, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
 * Webmin: download.webmin.com
 * base: mirror2.hs-esslingen.de
 * epel: mirror.awanti.com
 * extras: mirror2.hs-esslingen.de
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.netcologne.de
postgis-1.5.3-1.el6.x86_64 : Geographic Information Systems Extensions to
                           : PostgreSQL
Repo        : epel
Matched from:



postgis-1.3.6-1.el6.rf.x86_64 : Geographic Information Systems Extensions to
                              : PostgreSQL
Repo        : rpmforge
Matched from:

Agora meu projeto compila, mas não vincula referências ausentes:

/usr/pgsql-9.1/lib/postgis-1.5.so: undefined reference to 'accumArrayResult'
/usr/pgsql-9.1/lib/postgis-1.5.so: undefined reference to 'TupleDescGetAttInMetadata'
/usr/pgsql-9.1/lib/postgis-1.5.so: undefined reference to 'repalloc'
/usr/pgsql-9.1/lib/postgis-1.5.so: undefined reference to 'SPI_exec'
/usr/pgsql-9.1/lib/postgis-1.5.so: undefined reference to 'init_MultiFuncCall'

o que provavelmente significa que alguns pacotes foram misturados: alguns são instalados a partir de um repo e alguns do outro.

Perguntas: (i) como posso dizer ao yum para instalar o pacote de um repositório e depois reinstalá-lo (para ver se os erros de ligação desapareceriam); (ii) como posso ver quais pacotes no sistema estão instalados a partir de um repo e do outro?

    
por arthur 08.02.2013 / 10:44

2 respostas

5

yum list installed informará de qual repositório determinado pacote foi instalado, por exemplo:

bonnie++.x86_64                     1.96-2.el6                  @epel/6.2  

Para selecionar a variante a ser instalada, basta usar o nome exato da variante que deseja instalar na lista whatprovides :

yum install postgis-1.3.6-1.el6.rf.x86_64

Para mais informações, consulte a seção specify package names de man yum .

    
por 08.02.2013 / 10:58
7

Para instalar um pacote de um, exclua o (s) pacote (s) nos arquivos /etc/yum.repos.d/epel ou /etc/yum.repos.d/rpmforge.

excluir = < nome do pacote >

adicionado no final, você pode adicionar várias linhas, se quiser.

Os pacotes instalados devem estar listados em /var/log/yum.log

    
por 08.02.2013 / 11:00