Debian 让git buildpackage与大tarball一起工作

Debian 让git buildpackage与大tarball一起工作,debian,packaging,Debian,Packaging,使用时,有两种方法获取上游源: 从上游分支检索它们;或 将发布tarballs导入存储库 我的团队正在研究如何打包Oracle Java。我们用git开发我们的包,并希望使用gbp。显然,选项(1)是不可能的,因为没有来源。但选项(2)也不可行,因为这意味着将大量(200MB+)档案导入git 由于Debian的政策是反对专有软件,所以您在那里找不到关于这个用例的很多文档。不过,一定有办法 dpkg buildpackage也不够,因为。现在您需要使用uscan和debian/watch或git

使用时,有两种方法获取上游源:

  • 从上游分支检索它们;或
  • 将发布tarballs导入存储库
  • 我的团队正在研究如何打包Oracle Java。我们用git开发我们的包,并希望使用gbp。显然,选项(1)是不可能的,因为没有来源。但选项(2)也不可行,因为这意味着将大量(200MB+)档案导入git

    由于Debian的政策是反对专有软件,所以您在那里找不到关于这个用例的很多文档。不过,一定有办法

    dpkg buildpackage也不够,因为。现在您需要使用uscan和
    debian/watch
    或git buildpackage。

    git buildpackage和大型文件没有问题。 你凭什么认为有? 在将“巨大”tarball导入git存储库时,您会遇到哪些问题? 它们是否与英镑相关?或者这仅仅是
    git
    处理大型二进制blob的方式(这实际上是一个完全不同的问题)。 如果您真正关心大型存储库的大小,您可能需要签出
    git lfs
    或类似的文件

    由于Debian的政策是反对专有软件,所以您在那里找不到关于这个用例的很多文档。 哪个用例? 拥有巨大的发布tarballs并不是专有软件所独有的。 (想想游戏吧……有些牙线游戏有着数不清的数据)

    因此,您的选择是: -要么包括大型上游柏油球 -或者重新打包,扔掉不需要的东西(例如,W32、W64和BeOS的预编译二进制文件在Debian软件包的上下文中通常是无用的,但会极大地扩大软件包的大小)。获取上游tarball的标准工具(
    uscan
    )包括在导入新的上游版本时自动删除文件的机制

    get orig源已弃用 那又怎样?您引用的文章清楚地指出,它“存在于debian/rules文件中是绝对好的”。 另外,
    git orig source
    vs
    uscan
    的问题与您描述的问题是正交的。 这两种方法都是从远程位置获取源代码,开始打包新版本。 在构建过程中都不能使用来获取缺失的上游源(您可能会感到困惑,因为
    get orig source
    是一个Makefile目标。但是除了希望获取源的人员手动调用外,此目标从未真正被调用)

    dpkg构建包也不够 为什么不呢? 如果您将原始tarball放在dpkg buildpackage可以找到它的地方,那么您当然可以使用它

    gbp
    是一个非常好的集成工作流工具,它将Debian打包(Debian中的所有内容)和上游快照保存在单个存储库中

    这可能不一定是您想要的工作流(例如,因为您明确不希望在打包存储库中包含上游源)

    在这种情况下,
    gbp
    可能不是适合您的工具


    幸运的是,绝对没有什么强迫你使用这个工具。请随意使用
    git dpm
    dpkg buildpackage
    ,或者在没有任何帮助的情况下手动滚动您自己的包。

    刚刚发现。它将其导入到存储库中,因此它与其他选项一样不合适,但可能对包的自动生成有用。谢谢您的回答。问题确实在于git本身处理大文件的方式。Git LFS在本例中不可用,因为我们使用CodeCommit。甲骨文的档案里没有什么可以扔掉的。事实上,有一些FLOSS软件包带有巨大的上游tarball,但我怀疑这些tarball是否包含在开发软件包的git回购协议中!我们需要类似于在AWS上构建的东西,而作为自动化过程的一部分获取上游档案将是很好的。