Excluir um repo específico da Atualização YUM

13

Estou fazendo uma atualização yum em todo o sistema no RHEL 5.5 e o repositório IUS EPEL está lançando um erro de dependência ausente:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Existe uma maneira de executar a atualização do YUM em todos os outros repositórios, ignorando o repositório IUS EPEL para ignorar esse problema de dependência?

Esclarecimento

Estou tentando instalar as atualizações apenas da Rede Redhat. Não consigo encontrar o nome do sudo yum --disablerepo=* --enablerepo=rhel updaterepositório, portanto, não consigo fazer algo como a versão do yum que estou usando não suporta vários repositórios listados a seguir --disablerepo.

Atualizar

Minha solução temporária é executar sudo yum --exclude=php53* update. Estou convencido de que existe uma maneira melhor. Essa maneira melhor inclui corrigir o problema real, por isso arquivei um bug no IUS Community Project também.

Atualização # 2

Parece que encontrei o problema com a dependência . Ainda acho que deve haver uma solução viável.

Obrigado!

Robin
fonte
Atualizei minha resposta para levar em consideração seus esclarecimentos.
plasmid87

Respostas:

21

Experimente desativar o repo switch:

--disablerepo=REPONAME

ATUALIZAR

Para encontrar todos os repositórios atualmente "conhecidos" (ativados e desativados):

yum repolist all

Em seguida, para descobrir qual repositório está sofrendo o pacote acima, tente:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

Isso mostrará quais de seus repositórios fornecem o pacote acima (você também verá "instalado" na lista, para mostrar os pacotes instalados localmente).

Tente a opção desativar novamente quando conhecer o repositório usando a opção desativar repositório.

yum update --disablerepo=[from above]

Falhando nas etapas acima para destacar o repositório que você deseja omitir, tente dar uma olhada em /etc/yum.repos.d/ , que é o local padrão do RHEL para definições de repositório. Uma vez neste diretório, localize todos os arquivos de base e atualizações do RHEL não padrão e inclua enabled = 0 , por exemplo,

[repo]
enabled=0

Espero que isto ajude.

plasmid87
fonte
Isso pode funcionar se eu puder especificar vários repositórios. Eu tentei --disablerepo=epel --disablerepo=iuse --disablerepo=epel,ius.
29512 Robin
yum repolist allmostra que apenas os seguintes repositórios estão ativados: epel, ius e rhel-x86_64-server-5. Seu --showduplicatescomando mostra esse pacote como instalado a partir do repositório ius. Então, tentei o seguinte sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updatee ainda está lançando um erro de dependência no mesmo pacote. Também tentei desabilitar os enabled=0repositórios alterando a configuração em /etc/yum.repos.d/
Robin
Imagino que quando você instalou o repositório IUS, ele foi configurado para ser ativado por padrão. Tente isso: sudo yum update --disablerepo=iusassumindo que todos os outros repositórios estejam ativados por padrão. Caso contrário, tente sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64pular este pacote completamente.
plasmid87
Nenhuma dessas opções funciona. Estou sentindo falta de algo.
Robin
Só posso imaginar que outra coisa precisa desse pacote atualizado como parte do processo de atualização. Se você executar sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64, mostrará todas as dependências e provedores para esse pacote específico. Na minha experiência com pacotes PHP e RHEL, esse é um problema comum. Não querendo me afastar do problema em questão, mas eu achei o Remi para fornecer os melhores pacotes para PHP, nunca tive um problema de dependência com o PHP depois de passar para seus repositórios.
Plasmid87
1

a maneira mais fácil de fazer isso é comentando o linux com seu repositório indesejado no /etc/yum.repos.d/

fromnaboo
fonte
1

Você pode desativar vários repositórios na linha de comando do yum:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

No entanto, se você fizer isso, deverá ativar explicitamente o repositório que deseja:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant
LukeInDC
fonte