【问题标题】:Spec file for building .tar.gz as .rpm用于将 .tar.gz 构建为 .rpm 的规范文件
【发布时间】:2020-06-12 09:19:59
【问题描述】:

我想通过为 RHEL7 构建一个仅将内容提取到 /usr/bin/.rpm 来改进我继承的程序的分发和版本控制,该程序目前作为 .tar.gz 文件分发。 tarball 并不小,包含大约 120 MB 的文件。

我是包构建方面的新手,所以我一直在关注 https://rpm-packaging-guide.github.io 中的 bello 示例,但该示例对我的需求来说太简单了。

到目前为止,我有这个.spec 文件:

Name:           my-app
Version:        2.0 
Release:        1%{?dist}
Summary:        My application

License:        Internal license
URL:            <my-website>
Source0:        <my-website>/%{name}-%{version}.rhel7.x86_64.tar.gz

Requires:       bash

BuildArch:      x86_64

%description
My application

%prep
%setup -q

%build

%install
mkdir -p %{buildroot}/%{_bindir}
install -m 0755 %{name} %{buildroot}/%{_bindir}/%{name}

%files
%{_bindir}/%{name}

这会生成一个非常小的.rpm,只有/usr/bin/my-app。安装时如果抱怨 tarball 的 lib 目录中缺少许多依赖项,但当然不在我的包中。

据我了解,%files 指令必须包含应该在.rpm 内的所有文件的列表,但这些文件有数百个。所以我假设有更好的方法来构建包,毕竟只是解压缩 tarball。

你有什么建议吗?

【问题讨论】:

标签: linux rpmbuild rhel7 rpm-spec


【解决方案1】:
install -m 0755 %{name} %{buildroot}/%{_bindir}/%{name}

您只是在安装二进制文件。如果依赖项在您的 tgz 中,您还应该安装它们,然后确保将它们打包在 %files 下。

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 2012-10-16
    • 1970-01-01
    • 2017-12-29
    • 2019-04-04
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多