【发布时间】:2015-08-23 21:13:21
【问题描述】:
我想创建仅用于提取 jar 文件的 RPM 包:
Name: pack-agent
Version: 1.0
Release: 1%{?dist}
Summary: Linux Agent installation script
Group: Utilities
License: license
Source0: pack-agent-1.0.tar.gz
BuildArch: x86_64
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
%prep
%setup -q -n opt
%build
%install
#install -m 0755 -d $RPM_BUILD_ROOT/agent
#cp -ap agent/* $RPM_BUILD_ROOT/agent/
install -m 0755 -d %{buildroot}/opt
#cp -a * %{buildroot}/agent
cp -a * %{buildroot}/opt
%clean
rm -rf $RPM_BUILD_ROOT
%files
/opt
%defattr(-,root,root,-)
%doc
%changelog
事实证明,在安装 RPM 之后,一些文件已损坏,因为有一种特殊的方法可以从 jar 文件中提取文件。我想可能在构建过程中使用了简单的提取命令。
有没有办法解决这个问题?我现在得到这个错误:
org.osgi.framework.BundleException: The bundle file:/opt/agent/deploy/System_Install-1.0.jar does not have a META-INF/MANIFEST.MF! Make sure, META-INF and MANIFEST.MF are the first 2 entries in your JAR!
文件似乎未正确提取。
【问题讨论】:
-
您的问题没有列出任何带有 jar 文件的内容。
-
您能解释一下我该如何解决这个问题吗?
-
该错误是抱怨 jar 文件本身。
/opt/agent/deploy/System_Install-1.0.jar来自哪里?该文件与您包含的规范文件有何关系? -
这是我的自定义罐子。当我在 RPM 安装后手动复制 jar 时,它工作正常。看起来 RPM 构建过程正在破坏 jar?
-
这是可能的。 RPM 确实尝试重新打包 jar 以进行压缩/等。目的。我想这可能会打破你的罐子。你可以考虑禁用它。虽然如果这真的是问题,我会感到惊讶。 RPM 安装后那个 jar 的内容是什么?