База данных RPM не видит файл, установленный как часть RPM

Введение:

Следующее было сделано в RHEL 6.9 32bit ОС.

Я установил версию JRE rpm для Oracle (не openjdk) с помощью команды

rpm -Uvh

.

Затем я собрал пакет, используя rpmbuild , который требует libjvm.so , который предоставляется Oracle JRE, и проверил это с помощью команды.

rpm -ql jre1.8.0_111-1.8.0_111-fcs.i586

Проблема:

Однако, когда я перехожу к установке rpm , я создал или использовал команду rpm -q libjvm.so Мне сказали, что libjvm.so не установлен.

Я знаю, что могу добавить файл spec для моего rpm

AutoReqProv: no

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

Вопрос:

Таким образом, я размышляю и пытаюсь решить, как jre rpm утверждает, что предоставляет libjvm.so , но база данных RPM продолжает говорить, что зависимость libjvm.so не устанавливается. Есть идеи?

РЕДАКТИРОВАТЬ

JRE rpm также предоставляет следующее

jaxp_parser_impl  
xml-commons-apis  
java  
java-1.8.0  
java-fonts  
jre  
jre-1.8.0  
jre1.8.0_111 = 1.8.0_111-fcs
0
08.06.2017, 18:27
1 ответ

Требование libjvm.soв пакетах OpenJDK взято из

$ rpm -qp --provides java-1.8.0-openjdk-headless-1.8.0.121-1.b13.el6.x86_64.rpm \
  2>/dev/null | grep libjvm
libjvm.so()(64bit)
libjvm.so(SUNWprivate_1.1)(64bit)

, чего, напротив, не обеспечивает Oracle RPM. Помимо удаления это требование из пакета, который вы собираете (либо с помощью молота AutoReqProvили более сложных опций, включающих сценарии зависимостей)другой вариант — создать пакет прокладок, который не делает ничего, кроме предоставления необходимого требование (и, возможно, Conflictс OpenJDK ).

Name:           shim-libjvm
Version:        1
Release:        1%{?dist}
Summary:        Shim for libjvm

Group:          Development/Languages
License:        CC BY-SA 3.0
URL:            http://example.org

Provides:       libjvm.so

BuildArchitectures: noarch

%description
Shim for libjvm

%install
mkdir -p %{buildroot}/usr/share/doc/shim-libjvm
echo "shim-libjvm is merely a provider for libjvm.so" > %{buildroot}/usr/share/doc/shim-libjvm/README


%files
%doc
/usr/share/doc/shim-libjvm/README

%changelog
* Thu Jun  8 2017 John Doe <jdoe@example.org>
- Release on a mostly unsuspecting world.
1
28.01.2020, 02:45

Теги

Похожие вопросы