Como corrijo um erro de transação?

1

Eu tenho erro de verificação de transação entre nodejs-0.10.33-1nodesource.fc20.x86_64 e nodejs-semver-2.1.0-1.fc20.noarch . Erro total em gist: 8998690a05100b1f6085

Quando eu executo o yum list nodejs eu recebo:

Installed Packages
nodejs.x86_64                0.10.32-1.fc20                           @updates  
Available Packages
nodejs.i686                  0.10.32-1.fc20                           updates   
nodejs.x86_64    

Se eu tiver apenas um pacote instalado, como posso ter um conflito? E o que eu faço sobre isso?

    
por John Hitz 11.12.2014 / 19:54

1 resposta

0

Não é realmente um erro de transação do que eu vejo, é um conflito de arquivos. IMO (talvez alguém possa me corrigir) você praticamente tem que remover o pacote npm . Fisicamente ou apenas a partir do banco de dados RPM.

  • Se você estiver confortável com isso, basta fazer um rpm -e npm para desinstalar o pacote e remover os arquivos conflitantes do sistema de arquivos. Isso causaria perda de dados, mas se os conflitos existirem porque nodejs é uma substituição completa do pacote npm , não deve haver muita perda, pois a instalação de nodejs substituirá os arquivos perdidos devido à desinstalação.

  • Se você não acha que pode remover o pacote (ele possui arquivos que o outro pacote não possui), você pode tentar a sua sorte com a opção --justdb para rpm -e . Esteja avisado que isso pode causar conflitos que você não verá necessariamente imediatamente (onde versões conflitantes de arquivos são instaladas ou fragmentos do pacote antigo permanecem no sistema, etc). Você só precisa adivinhar se tudo ficará bem, contanto que os arquivos sejam sobrescritos.

Exemplo:

[root@vml-lvprod04 ~]# ll -h /usr/bin/nc
-rwxr-xr-x 1 root root 22K Feb  9  2010 /usr/bin/nc
[root@vml-lvprod04 ~]# rpm -e --justdb nc
[root@vml-lvprod04 ~]# rpm -ql nc
package nc is not installed
[root@vml-lvprod04 ~]# ll -h /usr/bin/nc
-rwxr-xr-x 1 root root 22K Feb  9  2010 /usr/bin/nc
[root@vml-lvprod04 ~]# yum install -y nc
[ ...snip... ]
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : nc-1.84-22.el6.x86_64            1/1
  Verifying  : nc-1.84-22.el6.x86_64            1/1

Installed:
  nc.x86_64 0:1.84-22.el6

Complete!

Como você pode ver, eu removi o pacote do banco de dados sem tocar no próprio arquivo. Isso impedirá que rpm veja quaisquer conflitos de arquivo. Fui então capaz de instalar um pacote com um arquivo no mesmo local sem errar o yum. rpm foi projetado para prever conflitos, portanto, use novamente por sua conta e risco.

    
por 11.12.2014 / 20:31