【发布时间】: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。
你有什么建议吗?
【问题讨论】:
-
%prep, %setup -q, %build, %install从源代码构建时使用。 .... 示例规范文件:从文件(~1400 个文件 !)dropbox.com/s/bv9k29xlhsr6xlp/gcc63-c%2B%2B.spec?dl=0 构建 rpm .... 使用 pkgtools2 drive.google.com/file/d/0B7S255p3kFXNQ0ZEbHB1V1BUa0E/… 自动编写
标签: linux rpmbuild rhel7 rpm-spec