【问题标题】:RPM Spec file unpack tar.gz into multiple locationsRPM Spec 文件将 tar.gz 解压到多个位置
【发布时间】:2018-12-03 16:08:34
【问题描述】:

this 手册的帮助下,我试图生成我的第一个 RPM。 我的目标是生成一个 rpm,将我的文件 project.tar.gz 解压缩到多个目标目录中。

假设我在 tar.gz 中有以下结构:

/part-one
   /file-one.py
   /file-two.py
/part-two  
   /file-one.py
   /file-two.py
   /subdirectory
       /file-one.py
       /file-two.py

我希望将第一部分安装到 /opt/project-one/libs/ 第二部分进入/opt/project-two/libs/specific-dir/

我是否需要将 tar.gz 中的所有文件放在 %files 正文项中,例如:?

%files
/part-one/file-one.py
/part-one/file-two.py
/part-two/file-one.py
/part-two/file-two.py
/part-two/subdirectory/file-one.py
/part-two/subdirectory/file-two.py

我如何指定这些文件的目标?

我用的时候明白了:

%prep
%setup -q

tar.gz 的内容是自动解包的,我不需要添加解包命令。

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    %setup 之后,您需要一个%install 部分,然后是一个%file 部分。

    %install 部分将解压缩的源代码(您的 tarball)安装/复制到适当的目标目录(/opt/....)。这是一个例子

    %setup -q
    
    %build
    # empty
    
    %install
    # create target dirs
    install -p -d -m 0755 /opt/project-one/libs
    install -p -d -m 0755 /opt/project-two/libs/subdirectory
    
    # copy files
    install -m 0644 part-one/*.py /opt/project-one/libs/
    install -m 0644 part-two/*.py /opt/project-two/lib/subdirectory
    
    %files
    # This should take care of all files inside these dirs.
    /opt/project-one/
    /opt/project-two
    

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2011-11-01
      • 1970-01-01
      • 2018-06-26
      • 2013-04-29
      • 1970-01-01
      相关资源
      最近更新 更多