【问题标题】:How to make a very simple RPM for RedHat如何为 RedHat 制作一个非常简单的 RPM
【发布时间】:2015-06-27 10:42:15
【问题描述】:

我正在尝试为 RedHat 制作一个非常简单的 RPM 安装文件。

这个文件只能把我的二进制文件放到/usr/bin,把我的配置文件放到/usr/etc.

我不想将我的资源放在 RPM 上。

【问题讨论】:

  • 在线构建 rpm 包的指南有很多(质量参差不齐)(其中最重要的是从 [rpm-spec] 标签 wiki 链接的 rpm.org/max-rpm/ch-rpm-basics.html)。你试过什么吗?你具体卡在哪里了?您在哪个版本的 RedHat/Fedora/CentOS 上构建此 rpm 以及为哪个版本构建此 rpm?
  • 由于 Red Hat 发行版中的软件包大多遵循 fedora 软件包指南,您可以从这个 wikipage 开始:fedoraproject.org/wiki/How_to_create_an_RPM_package
  • 是的,我找到了很多指南,但没有一个没有编译。对于规范文件的头部 OK 但在我假设 %prep 之后,%build 和 clean 必须为空。
  • 我尝试在 BUILD 目录中使用我的二进制文件和配置文件创建一个规范文件,并通过 /usr/bin 和 /usr/etc 中的 cp cmd 复制它们。然后在 %files 部分我尝试给他们 755 权限。它不起作用。我在 CentOS 6.5 中。无论如何感谢您的回答,您的链接很有趣

标签: redhat rpm rpmbuild rpm-spec


【解决方案1】:

使用路径(在 tar 球中)上的文件创建一个 tar 球,例如 ./usr/etc ...

Then add the tar ball with a SourceN: directive (choose N appropriately).

在 %install 中做

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
tar -C %{buildroot} -xvf %{SOURCEn}    # <== choose n same as N in SourceN:

然后使用绝对路径创建 %files(即没有前导 . 和/或 %buildroot)。如有必要,使用 %attr(mode,user,group):默认 %defattr(0644,root,root,0755) 通常是必要的。

运行“rpm -ba your.spec”来创建二进制包。

Q.E.D.

【讨论】:

  • 非常感谢。我不明白它是如此简单,我完全混淆了有源和无源的 RPM。
猜你喜欢
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
相关资源
最近更新 更多