【问题标题】:RPM extract jar filesRPM 提取 jar 文件
【发布时间】: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 的内容是什么?

标签: jar rpm rpmbuild rpm-spec


【解决方案1】:

如果您的 tarball 包含应保持原样的 jar 文件,请禁用重新打包 jar 文件。将以下内容添加到规范文件的顶部:

%define __jar_repack %{nil}

【讨论】:

    【解决方案2】:

    运行rpm -E '%{__os_install_post}' 并找到brp-java-repack-jars 脚本(/usr/lib/rpm/redhat/brp-java-repack-jars 在我的 CentOS 5 系统上)并查看它。

    它打开并重新包装它找到的罐子。

    较新的版本可能会让您稍微控制它,但在我拥有的版本中,您对事情没有太多发言权。

    对于 CentOS 5 中的版本,您的选择似乎是:

    • 定义您自己的自定义 __os_install_post 而不将其称为该脚本
    • 更新脚本以更智能地正确处理META-INFMANIFEST.MF 文件。
    • 从您的系统中完全删除该脚本
    • 从您的系统中完全删除 zip 和/或 unzip

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多