gpt4 book ai didi

linux - 如何为静态文件创建原生 Debian 包?

转载 作者:IT王子 更新时间:2023-10-28 23:54:49 30 4
gpt4 key购买 nike

我需要为一个软件项目对一些静态资源进行 Debian 化,但对可用信息感到困惑,并且可以在这样做时使用一些指导。以下是我一直在阅读的资料:

Debian 新维护者指南 似乎最合适,尤其是 this chapter ,但它的教学演示对我来说无效;它更像是一个重新学习的引用,而不是给不知情者的指南。我发现的许多信息同样适用于将我不需要的包包含在公共(public)存储库中。为了让一些好心人能给我指路,我创建了一个小项目 statrec这举例说明了我需要创建的包类型。它的源代码树如下所示:

statrec/
├── LICENSE
├── README.md
├── share
│   ├── gilgamesh.txt
│   └── thoreau.txt
└── VERSION

我需要但无法推断出如何:

  • 安装statrec/share/usr/share/statrec/VERSION/,
  • 创建或修改从 /usr/share/statrec/current//usr/share/statrec/VERSION/ 的符号链接(symbolic link),然后
  • 卸载以前版本的 statrec。

我了解如何完成其​​中的一些工作,也许可以使用哪些工具,但对 surfeit of information 感到相当无能为力。 .

最佳答案

我会说最简单的事情是:

  1. 创建一个 makefile,它将根据任何 DESTDIR 设置按照您的意愿安装文件,并且对默认目标不执行任何操作。类似的东西:

    all: # nothing to build

    install:
    cp -r share/* $(DESTDIR)/usr/share/statrec/$(VERSION)

    DESTDIR 很重要;它不会安装到系统中,而是安装到 dpkg 将打包的临时目录中。所有符号链接(symbolic link)都必须指向最终目的地(没有 $(DESTDIR) 前缀)。

  2. dh_make --native 做它的事情(它将创建另一个 makefile debian/rules 来调用第一个 makefile)。

  3. 查看debian 下的文件。特别是debian/changelog可能需要编辑(这是debuild/dpkg-buildpackage获取版本号的地方,所以必须填写)。

    我相信 debuild 会自动使用 fakeroot,对于 dpkg-buildpackage 你必须手动指定它。甚至不要考虑以真正的 root 身份运行它。

  4. 使用debuilddpkg-buildpackage -rfakeroot 构建它

无需关心卸载,因为 dpkg 会处理它。

更新:我建议使用dh_make --native,因为我知道这个问题只是在一些debian 系统上安装一些数据文件。如果它应该被分发,我建议直接去 irc.debian.org#debian IRC channel 询问,并可能将它留给 Debian 开发人员(只有 Debian 开发人员可以上传到 Debian 文件库,他们通常想自己处理打包) .

此外,如果它是软件的一部分而不是独立的一堆数据文件,则安装应该是使用一个通用 makefile 的软件一般安装的一部分,应该只有 一个 Debian 源package 而只是 debian/controldebian/*.files 应该指定哪些文件进入应用程序包(即“Architecture: any”)以及哪些文件进入数据包(即“Architecure: all”,通常后缀为 -data)。

关于linux - 如何为静态文件创建原生 Debian 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7176065/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com