RPM: falha na dependência do JRE, mesmo que a versão do JRE esteja instalada

RPM: falha na dependência do JRE, mesmo que a versão do JRE esteja instalada

Estou tentando instalar um pacote e ele falha ao relatar uma dependência ausente:

# rpm -ivh *
error: Failed dependencies:
    jre >= 1.7.0 is needed by Tomcat-7.0.37-1.noarch

Ao mesmo tempo, quando verifico minha versão Java, eis o que recebo:

# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Server VM (build 24.0-b56, mixed mode)

Não é o java que o rpm quer? Estou esquecendo de algo? O rpm vê um java diferente e como posso verificar isso?

Responder1

O gerenciador de pacotes é apenas isso - um gerenciador de informações de pacotes, ele realmente não sabe o que está no seu sistema, apenas quais pacotes ele instalou e, portanto, o que ele assume que está no seu sistema.

O problema óbvio com esse design é que os dois podem ficar fora de sincronia, digamos, se você instalou o JRE manualmente baixando-o do Oracle, então o gerenciador de pacotes não tem ideia de que ele está lá e, portanto, faz seu trabalho de apontar o que falhou. cadeia de dependência.

Existem várias opções, assumindo que este seja o problema (verifique sua lista de pacotes rpm, esqueci os parâmetros do rpm) em ordem de feio: (1) Você pode instalar a versão do JRE de sua distribuição, o que deixará o gerenciador de pacotes feliz, (2) Você pode falsificar o gerenciador de pacotes para que ele pense que a dependência "jre versão 1.7.0" está realmente instalada, com ou sem instalação, e então subverter os binários Java para usar sua versão instalada, ou (3) você pode simplesmente instalar o Tomcat com o Opção --nodeps para ignorar dependências. Esteja ciente de que (3) é uma ladeira escorregadia e você acabará pulando mais dependências e subdependências ao longo do tempo.

informação relacionada