diga ao yum para ignorar uma única dependência

37

Estou tentando instalar o winswitch no CentOs 6. Ele requer 'nxagent'. Mas em centos, o nome do pacote é 'nx'. Existe uma maneira de dizer ao yum para ignorar a verificação da dependência 'nxagent' (já instalei o 'nx')? Especificar --skip-broken ignora tudo

IttayD
fonte

Respostas:

14

Geralmente yumnão tem opções para ignorar um único pacote das dependências. A opção --skip-brokenignora todas as dependências não resolvidas.

Você pode tentar, yum --exclude=packagenamemas exclui um pacote específico por nome ou glob das atualizações em todos os repositórios, não das dependências.

B14D3
fonte
1
yum --excludenão funciona em dependências
DrStrangepork
2
@DrStrangepork sim eu sei que eu escrevi que na minha resposta
B14D3
5
Nem --excludenem --skip-brokenajuda de bypass uma ou mais dependências da maneira que rpm --nodepsfaz.
Acumenus
3
Vá para a segunda resposta.
Brthornbury
49

O rpmcomando tem a --nodepsopção que você pode usar. Um desafio é que, rpmpor si só, não está ciente dos repositórios yum. O comando a seguir instalará ou atualizará o pacote, ignorando dependências, mas pesquisando automaticamente a URL de download dos seus repositórios com os repoqueryquais estão no pacote yum-utils.

rpm -Uvh --nodeps $(repoquery --location winswitch)

Depois disso, um regular yum updateprovavelmente terá êxito sem erros de dependência.

Onnonymous
fonte
$ (repoquery --location winswitch) não funcionou para mim. No entanto, é possível fazer o download do pacote .rpm através de "yumdownloader --destdir =. Nome do pacote". "rpm -U" significa atualização. Se o pacote não foi instalado, pode-se usar "rpm -i" para isso. O yumdownloader é do yum-utils (dnf-utils no meu caso).
Yaroslav Nikitenko
2

Parece que você está tentando instalar um pacote que não foi projetado para o sistema operacional, ou seja, se ele foi projetado para o CentOS, seria necessário nxcorretamente.

Outra solução alternativa para o problema é criar e instalar um pequeno pacote RPM shim que não contém arquivos, mas no arquivo spec contém as seguintes linhas (entre outras):

requires: nx
provides: nxagent

Dessa forma, a dependência deve ser satisfeita, mas pode esperar que os arquivos estejam em um local diferente do nxagentpacote que ele espera ter instalado e do nxpacote que o CentOS fornece.

bodgit
fonte
0

você também pode usar o rpmrebuild para alterar os metadados do rpm para apontar para o novo nome do pacote. este será então "seu" pacote, mas é mais limpo no que diz respeito às dependências rpm. Não há desvantagem em usar --nodeps, eu acho.

Florian Heigl
fonte