我正在创建一个rpm,它会在安装时将一些文件分散到不同/特定位置。我面临的问题是rpm的大小,接近1.5 GB。有没有办法可以将我的文件放在aws s3中并在rpm安装期间下载。截至目前,我将所有文件都包含在SOURCE目录中。
感谢任何帮助。
感谢。 Balasekhar Nelli
答案 0 :(得分:1)
您可以使用增量生成yum / dnf存储库:
createrepo_c --deltas
它将针对旧的rpm文件创建二进制差异。它对初始下载没有帮助,但它会加快升级速度。
不要忘记进入yum.conf
deltarpm=2
请参阅man yum.conf了解此值的含义。
您还可以在构建rpm时更改压缩参数。看到这个答案: rpmbuild change compression format
答案 1 :(得分:0)
对于那些数据量,不将它放在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更新”。