RPM: не удалось найти зависимость JRE, хотя эта версия JRE установлена

RPM: не удалось найти зависимость JRE, хотя эта версия JRE установлена

Я пытаюсь установить пакет, но он не устанавливается, сообщая об отсутствующей зависимости:

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

В то же время, когда я проверяю свою версию Java, вот что я получаю:

# 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)

Разве это не та java, которую хочет rpm? Я что-то упускаю? Видит ли rpm другую java и как это проверить?

решение1

Менеджер пакетов — это всего лишь менеджер информации о пакетах. Он на самом деле не знает, что находится в вашей системе, а только какие пакеты он установил и, следовательно, что, по его мнению, находится в вашей системе.

Очевидная проблема с этой конструкцией заключается в том, что они могут быть не синхронизированы, например, если вы установили JRE вручную, загрузив ее с сайта Oracle, то менеджер пакетов не будет иметь ни малейшего представления о ее наличии и, следовательно, выполнит свою работу по указанию на сбойную цепочку зависимостей.

Есть несколько вариантов, если предположить, что проблема в этом (проверьте список пакетов rpm, я забыл параметры rpm) в порядке уродливости: (1) Вы можете установить версию JRE вашего дистрибутива, что порадует менеджер пакетов, (2) Вы можете обмануть менеджер пакетов, чтобы он думал, что указанная зависимость "jre version 1.7.0" на самом деле установлена, с установкой или без нее, а затем подменить двоичные файлы Java, чтобы использовать вашу установленную версию, или (3) Вы можете просто установить tomcat с опцией --nodeps, чтобы игнорировать зависимости. Помните, (3) — это скользкая дорожка, и со временем вы пропустите больше зависимостей и подзависимостей.

Связанный контент