【问题标题】:fpm / RPM: How to use fpm to create multiple smaller rpm files, using a directory as source?fpm / RPM:如何使用 fpm 创建多个较小的 rpm 文件,使用目录作为源?
【发布时间】:2021-06-14 12:46:59
【问题描述】:

我们有一个文件夹非常大(很多 GB),我们需要将文件夹的内容打包成 rpm 文件(由于某些限制,我们不能将文件夹拆分为多个文件夹) .

但是,我们的下游系统对其可以传输和处理的每个 rpm 文件都有大小限制(无法更改)。

因此,我们需要创建多个较小的 rpm 文件,而不是从文件夹的内容创建一个大的 rpm 文件。

使用 fpm 是否可行? (顺便说一下,我们在 CentOS 7 上)

提前非常感谢!

【问题讨论】:

    标签: centos7 rpm rpmbuild


    【解决方案1】:

    大的src.rpm是否可行?那么:

    foo.spec:
    Name: foo
    Source0: big.tar.gz
    Requires: %{name}-part1
    Requires: %{name}-part2
    
    %package part1
    Summary: Part1 of %{name}
    
    %description
    Includes some cool part1.
    
    %package part2
    Summary: Part2 of %{name}
    
    %description
    Includes less cool part2.
    
    ...
    # prep, build, install section is the same as original spec
    
    %files
    %doc README
    
    %files part1
    /some/dir/with/part1
    
    %files part2
    /some/dir/with/part2
    
    

    在不同的方式来实现%files可以是:

    %files part1
    /your/project/
    %exclude /your/project/part2
    
    %files part2
    /your/project/part2
    

    此产生两个rpm包foo-part1foo-part2。只要你想,你实际上可以使尽可能多的子包。例如。的texlive的src.rpm提出了几十子包。而且有一个包foo包含只是一个文件,它需要所有这些部分。 P>

    【讨论】:

    • 谢谢。我会看到,如果我能找到一种方法来试一试。目前,我用了一个类似的,但哈克的方式:我首先基于一个(最大)的子文件夹中创建1包。然后取出该子文件夹,则创建所述第二包。这2包是相互独立的,所以我必须要小心,当安装它们。但它适合我的具体情况。 SPAN>
    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 2021-02-04
    • 1970-01-01
    • 2017-06-13
    • 2014-10-21
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多