【问题标题】:Manually editing debianrules file needed for simple build process?手动编辑简单构建过程所需的 debianrules 文件?
【发布时间】:2014-08-20 00:53:01
【问题描述】:

我是一个新手,试图按照this Ubuntu guide 构建一个deb 以放入PPA,但我遇到了规则文件的问题,我在其中咨询this overviewDebian Policy Manual。我收集到,在许多情况下,可以将规则文件以非常短的形式保留原样,但这对我不起作用,可能是因为在上游包上运行 make 之前需要一些技巧。

上游手动构建和安装的构建过程是:

  1. cd packagedir/src
  2. cp makefile.unix makefile.my
  3. 在 makefile.my 上运行三个 sed 行
  4. make -f makefile.my
  5. sudo cp -f 二进制文件 /usr/local/bin/

我已经设法将规则文件(添加目标)调整为似乎成功执行步骤 1-4 的内容,但是当通过 bzr builddeb -- -us -uc 命令完成编译时,我遇到了一个错误,提示“dpkg -genchanges:错误:无法读取文件列表文件:没有这样的文件或目录”,这让我怀疑我是否真的做了很多不必要的工作。毕竟构建和安装过程并不是很复杂。

所以我的问题是:我可以还原规则文件,并在构建过程中轻松实施上述五个步骤,还是我需要继续我所走的道路,手动编辑规则文件?在这两种情况下,我都需要有关如何继续的指导:)

【问题讨论】:

    标签: ubuntu makefile debian packaging debhelper


    【解决方案1】:

    是的,您可以还原规则文件并在 dh 框架内轻松实现这些步骤(而不是逐字添加这些步骤)。

    它可能看起来像

    #!/usr/bin/make -f
    
    %:
            dh $@
    
    override_dh_auto_configure:
            sed -e "$my_sed_program" makefile.unix > makefile.my
    
    override_dh_auto_build:
            make -f makefile.my
    

    然后在debian/$packagename.install:

    binaryfile    /usr/bin
    

    这可能无法完全按原样工作;这取决于您的构建过程如何运作的细节,但也许这会让您更接近。

    附注:不要将binaryfile 安装到/usr/local/bin,除非你真的必须这样做;包应该单独留下/usr/local,让本地系统管理员选择放在那里的东西。操作系统知道如何跟踪包拥有的文件以及它们在哪里以及它们是否与其他文件冲突,因此将其放在 /usr/bin 中应该没有任何缺点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      相关资源
      最近更新 更多