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.