Como forçar o Yum a instalar um pacote antigo que “está obsoleto por” um novo pacote?

1

Eu tenho um host do CentOS 6 rodando um servidor MySQL. Eu quero migrar este servidor dos pacotes do MySQL Enterprise Server para pacotes do MySQL Community Server, com os seguintes detalhes:

  • Os RPMs do MySQL Enterprise são chamados mysql-commercial -alguma coisa e estão na versão '5.7.22-1.1'. Eu os armazeno em um repositório personalizado.
  • Os RPMs da comunidade são chamados de mysql-community -algo e a última versão disponível é '5.7.22-1' , que é uma versão única '.1' por trás da versão comercial. Estes são armazenados em um repositório público ( link ).

Como o Community RPM tem um número de versão que está ligeiramente atrás da versão Commercial, não posso simplesmente trocar um pacote por outro. Yum reclama com o erro "O pacote foo-1 é obsoleto por foo-1.1":

[root@devdb ~]# yum list --quiet available 'mysql-*-server'
Available Packages
mysql-community-server.x86_64                   5.7.22-1.el6                    mysql57-community
[root@devdb ~]# 
[root@devdb ~]# yum install --quiet mysql-community-server
Package mysql-community-server-5.7.22-1.el6.x86_64 is obsoleted by mysql-commercial-server-5.7.22-1.1.el6.x86_64 which is already installed
[root@devdb ~]# 

Eu tentei algumas coisas, como especificar o número de versão específico apresentado em Como instalar uma versão antiga do php (5.2.17) no Linux? , mas isso não funciona neste caso:

[root@devdb ~]# yum install --quiet mysql-community-server-5.7.22-1.el6.x86_64 
Package mysql-community-server-5.7.22-1.el6.x86_64 is obsoleted by mysql-commercial-server-5.7.22-1.1.el6.x86_64 which is already installed
[root@devdb ~]#

Como posso forçar o Yum a usar um pacote com um número de versão mais antigo?

    
por Stefan Lasiewski 23.05.2018 / 00:01

1 resposta

2

Eu não consegui encontrar uma maneira de fazer isso apenas com o Yum. O que acabei fazendo foi um processo de duas etapas:

  1. Use rpm para remover os pacotes mysql-commercial- *, mas não remova nenhuma dependência.

    [root@devdb ~]# rpm --erase --nodeps mysql-commercial-server mysql-commercial-libs-compat mysql-commercial-client mysql-commercial-common mysql-commercial-libs
    warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
    [root@devdb ~]#
    
  2. E então use o Yum para instalar os pacotes da comunidade mysql, no número de versão mais próximo que eu puder encontrar:

    [root@devdb ~]# yum --disablerepo=local-mysql-enterprise install mysql-community-libs-5.6.40-2.el6.el6.x86_64 mysql-community-common-5.6.40-2.el6.el6.x86_64 mysql-community-client-5.6.40-2.el6.el6.x86_64 mysql-community-libs-compat-5.6.40-2.el6.el6.x86_64 mysql-community-server-5.6.40-2.el6.el6.x86_64 
    ...
    Installed:
      mysql-community-client.x86_64 0:5.7.22-1.el6               mysql-community-common.x86_64 0:5.7.22-1.el6
        mysql-community-libs.x86_64 0:5.7.22-1.el6                 mysql-community-libs-compat.x86_64 0:5.7.22-1.el6
        mysql-community-server.x86_64 0:5.7.22-1.el6
    
    Complete!
    [root@devdb ~]#
    
  3. E restaure alguns arquivos principais:

    [root@devdb ~]#cp /etc/my.cnf.rpmsave /etc/my.cnf
    [root@devdb ~]#
    
por 31.05.2018 / 03:14