debian 存储库应该有哪些布局/文件?

fed*_*lov 6 apt repository

我是 Java 开发人员。我的目标是将我的对象包装成 deb 文件/将它们上传到私有存储库并从该存储库安装它们。

所以我的问题是:

  1. Debian 存储库只是满足某些特定规则的 HTTP 文件存储吗?
  2. 用于存储包裹的规则和结构是什么?
  3. 它是足够的补充deb http://my-repository.com stable non-free/etc/apt/sources.list使用这个仓库?

use*_*.dz 5

  1. Debian 存储库只是满足某些特定规则的 HTTP 文件存储吗?

    是的,但它也可以是 FTP 存储或只是一个本地目录。

  2. 用于存储包裹的规则和结构是什么?

    Debian Wiki: Debian Repository Format记录了官方 Debian 存储库的结构和客户端正式理解的格式。

  3. 它是足够的补充deb http://my-repository.com stable non-free/etc/apt/sources.list使用这个仓库?

    是的,但这取决于您如何设置存储库。然而,最简单的方法是设置一个与普通存档/存储库(本地目录)具有相同设置的平面存储库

    1. 最好为每个版本创建一个文件夹,例如:trusty.

    2. 将您的 Debian 软件包复制到其中。

    3. 生成包列表(从其父目录运行):

       dpkg-scanpackages -m trusty /dev/null | gzip -9c > ./trusty/Packages.gz
      
      Run Code Online (Sandbox Code Playgroud)
    4. 将整个文件夹上传到您的站点

    5. 现在您可以通过以这种格式添加存储库来访问它:

       deb http://my-repository.com trusty/
      
      Run Code Online (Sandbox Code Playgroud)

      注意:/这里是必须的,trusty此设置中的目录也是如此。

更新说明 (2021-05-28):接下来是什么?

在受限/封闭的专用网络中,上面的内容在某种程度上是可以的。但是向公众发布 Debian 软件包需要更多的安全措施,例如:

  1. 签名:每个包发布文件(在构建时),存储库包列表
  2. 并从用于签名的密钥对中发布公钥,以便用户可以将其添加到 APT。

这是一个 Debian 页面,对Secure APT有很好的概述