12

我需要为软件项目 Debianize 一些静态资源,但对可用信息感到困惑,可以使用一些指导。以下是我一直在阅读的材料:

Debian New Maintainer's Guide似乎最贴切,尤其是这一章,但它的教学介绍对我来说并不有效;它更像是一种重新学习的参考,而不是未知的指南。我发现的许多信息同样适用于将软件包包含在我不需要的公共存储库中。为了让一些好心的人给我指路,我创建了一个小项目statrec,它举例说明了我需要创建的包类型。它的源代码树如下所示:

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

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

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

我了解如何完成其​​中的一些,也许可以使用哪些工具,但由于信息过多而感到相当瘫痪。

4

3 回答 3

8

我想说最简单的事情是:

  1. 创建一个makefile,它将按照您希望它们尊重任何DESTDIR设置来安装文件,并且对默认目标不执行任何操作。类似于以下内容:

    all: # nothing to build
    
    install:
        cp -r share/* $(DESTDIR)/usr/share/statrec/$(VERSION)
    

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

  2. 让我们dh_make --native做正事(它将创建另一个debian/rules调用第一个 makefile 的 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 频道上询问,并可能将其留给 Debian 开发人员(只有 Debian 开发人员可以上传到 Debian 存档,他们通常希望自己处理打包) .

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

于 2011-08-24T13:56:33.173 回答
1

我发现 saurik(以 cydia/越狱闻名)的“托管 Cydia 存储库”指南对创建自己的 .deb 文件很有用。在这里看看:http: //www.saurik.com/id/7

于 2011-08-24T14:58:15.660 回答
1

您应该阅读debian-handbook中的第 15.2.2 节。

我发现为我自己的项目创建一个 .install 文件并跳过 Makefile 部分很有帮助

于 2013-08-29T10:07:38.557 回答