Atualizando a distribuição do Fedora com o yum distro-sync falha com erro: Versões de multilibes protegidas

1

Usando estas instruções , estamos realizando um upgrade do yum em uma fatia do Slicehost (NB. Isso não é um vhost da Rackspace, se é provável que pudéssemos apenas fazer uma instalação padrão da última distribuição do Fedora) do Fedora 15 para o 16, isso segue uma aparentemente bem-sucedida atualização do yum de 14 para 15.

A configuração é padrão para além de uma instalação binária do MySQL 5.6 e estamos usando o comando:


yum -y --releasever=16 --disableplugin=presto distro-sync --exclude=mysql-libs --exclude=perl-DBD-MySQL --skip-broken

Após muitas mensagens sobre os pacotes que serão atualizados, o processo é interrompido com estas mensagens de erro:


Error: Protected multilib versions: dracut-013-18.fc16.noarch != dracut-009-12.fc15.noarch
Error: Protected multilib versions: initscripts-9.33-1.fc16.x86_64 != initscripts-9.30.1-1.fc15.x86_64

Seguido pela sugestão:


 You could try running: rpm -Va --nofiles --nodigest

Usar a sugestão não ajuda, alguém poderia sugerir uma maneira de contornar os erros?

    
por blankabout 13.07.2012 / 16:13

2 respostas

3

O Fedora não deve ser atualizado dessa maneira. E você ainda nem chegou ao difícil (16-17). Dito isso, fiz isso dezenas de vezes e me deparei com praticamente todas as coisas concebíveis que poderiam dar errado. Aqui estão minhas recomendações.

Se for possível, a melhor e mais rápida maneira de fazer isso é criar uma nova instância de nuvem com o último lançamento do Fedora (17) e então transferir seus dados e configurações para ela. Em seguida, destrua a antiga instância da nuvem. Claro que isso depende da Rackspace ter uma imagem de instalação do Fedora 17, e eu não sei se eles fazem isso.

Eu tenho dois scripts de shell personalizados apenas para essa finalidade, um dos quais copia todos os arquivos de configuração de que preciso e os dados sendo fornecidos do sistema antigo, e o outro descompacta todos os dados criados pelo primeiro script e em seguida, instala todos os pacotes necessários.

Se você está determinado a continuar nesse caminho da loucura, continue lendo.

O erro Protected multilib versions geralmente ocorre quando você tem duas versões diferentes de um pacote em seu sistema, e algumas vezes uma delas é de uma arquitetura e uma é de outra (por exemplo, o pacote antigo é i686 e o novo é x86_64) . Ele também pode ocorrer se uma execução anterior do yum foi interrompida e você tentou fazer outra transação do yum sem retomar a transação interrompida. Isso sugere que sua atualização do Fedora 14 para o 15 não foi tão completa quanto você pensava que era.

Primeiro, pare de tentar atualizar para o 16 ou superior até resolver esse problema.

Execute yum-complete-transaction para concluir todas as atualizações pendentes do yum. Essa é a correção fácil. Se isso corrigir o problema, pule o restante disso. Se não, continue ...

Agora, para cada pacote que apresenta este erro, verifique o que você instalou:

rpm -q dracut initscripts

Você deve ter dois ou mais pacotes listados para cada um deles. Exclua um deles: se um for de 32 bits e o outro for de 64 bits, exclua o pacote de 32 bits mesmo que seja mais recente que o pacote de 64 bits. Caso contrário, exclua o pacote antigo. Em última análise, você deve ter apenas um de cada pacote instalado:

rpm -e dracut-00####.fc## initscripts-#.##-#.fc##

Se você encontrou apenas uma versão do pacote, você terá que excluí-lo do banco de dados RPM sem realmente removê-lo do sistema de arquivos (já que eles são necessários para inicializar e instalar). Por exemplo, se houvesse apenas uma versão do dracut:

rpm -e --nodeps --noscripts --justdb dracut-00####.fc##

Depois disso, você poderá continuar com yum --releasever=16 distro-sync .

Após terminar a sincronização de distros, se você tiver que excluir a única versão de um pacote do banco de dados RPM, não continue com as instruções do Fedora até substituí-lo:

yum --releasever=16 reinstall dracut

Neste ponto, você deve continuar com as instruções do Fedora.

Tenha em mente no futuro: o Fedora só mantém duas versões de lançamento ativas a qualquer momento. Depois disso, as antigas distros podem ser removidas dos espelhos, impossibilitando a atualização dessa maneira. Então você deve ficar no máximo uma versão para trás. Como alternativa, considere usar uma distribuição mais estável, como CentOS para que você principalmente evitar esta confusão inteiramente.

    
por 13.07.2012 / 19:53
0

Parece que você pode ter pacotes instalados a partir de repositórios de teste de atualizações e agora está desativado.

Experimente yum ... --enablerepo=updates-testing

Ou faça downgrade dos pacotes de testes de atualizações para versões básicas primeiro.

yum distro-sync

    
por 13.07.2012 / 17:32