【问题标题】:How to reduce the size of an rpm?如何减小 rpm 的大小?
【发布时间】:2016-01-17 08:34:19
【问题描述】:

我正在创建一个 rpm,它将在安装时将一些文件分散在不同/特定位置。我面临的问题是 rpm 的大小,接近 1.5 GB。有没有一种方法可以将我的文件放在 aws s3 中并在 rpm 安装期间下载。到目前为止,我将所有文件都包含在 SOURCE 目录中。

感谢任何帮助。

谢谢。 巴拉塞卡·内利

【问题讨论】:

标签: rpm rpmbuild rpm-spec


【解决方案1】:

对于这么多数据,不要将其放入一个 rpm,甚至不能放入 100 个(例如 mypgm-data-1.rpm、mypgm-data-2.rpm、... )。就个人而言,当我在运行 yum 时看到一些程序将 foobar-langpack-1.rpm 更新为 foobar-langpack-300.rpm,我讨厌它。

考虑使用 rsync [通过 http 隧道连接?] 而不是 AWS。它非常适合这项工作。

你为什么要把它们“四处散布”???为什么不将它们放在 /home/mypgm 或 /usr/share/mypgm 下?

rpm 安装应该很快。您可以让 rpm 帖子执行 rsync,但在用户第一次运行程序和/或配置之前我不会这样做。它会问:“启用自动/后台数据更新?”

给用户一个选择。当程序运行时,它可以检测到需要从 AWS 刷新本地数据并 [再次] 提示用户:“我需要更新程序数据才能运行。现在就做?需要 X 分钟”

对于如此庞大的东西,让用户选择更新政策。例如,在 Android 上,您可以选择“仅通过 wifi 更新”。

【讨论】:

    【解决方案2】:

    您可以使用 deltas 生成 yum/dnf 存储库:

    createrepo_c --deltas
    

    它将针对旧的 rpm 文件创建二进制差异。它不会帮助您进行初始下载,但会加快升级速度。

    别忘了yum.conf

    deltarpm=2
    

    查看 man yum.conf 了解此值的含义。

    您还可以在构建 rpm 时更改压缩参数。看到这个答案: rpmbuild change compression format

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-26
      • 2011-09-03
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多