Try   HackMD

Raspberry Pi OS 官方 Packages Repository 的檔案/目錄結構

├─ multiarch/
│  └─ bookworm/
│     ├─ main/
|     |  ├─ binary-arm64/
|     |  |  ├─ Packages.gz
|     |  |  ├─ Packages.xz
|     |  |  └─ Release
|     |  ├─ debian-installer/
|     |  |  └─ binary-arm64/
|     |  |     ├─ Packages.gz
|     |  |     └─ Packages.xz
|     |  └─ source/
|     |     ├─ Release
|     |     ├─ Sources.gz
|     |     └─ Sources.xz
│     ├─ InRelease
│     ├─ Release
│     ├─ Release.gpg 
│     └─ extrasources
├─ raspbian/
│  ├─ dists/
│  │  ├─ bookworm/
|  |  |  ├─ contrib/
|  |  |  ├─ firmware/
|  |  |  ├─ main/
|  |  |  ├─ non-free/
|  |  |  ├─ rpi/
|  |  |  ├─ Contents-armhf.gz 
|  |  |  ├─ InRelease
|  |  |  ├─ Release
|  |  |  ├─ Release.gpg
|  |  |  ├─ extrasources
|  |  |  └─ uContents-armhf.gz
│  │  ├─ bookworm-staging/
|  |  |  ├─ contrib/
|  |  |  ├─ firmware/
|  |  |  ├─ main/
|  |  |  ├─ non-free/
|  |  |  ├─ rpi/
|  |  |  ├─ InRelease
|  |  |  ├─ Release
|  |  |  ├─ Release.gpg 
|  |  |  └─ extrasources
│  │  ├─ oldoldstable/
|  |  |  └─ (omitted for brevity)
│  │  ├─ oldstable/
|  |  |  └─ (omitted for brevity)
│  │  ├─ stable/
|  |  |  └─ (omitted for brevity)
│  │  └─ testing/
|  |     └─ (omitted for brevity)
│  └─ pool/
│     ├─ contrib/
|     |  └─ (omitted for brevity)
│     ├─ firmware/
|     |  └─ (omitted for brevity)
│     ├─ main/
|     |  └─ (omitted for brevity)
│     ├─ non-free/
|     |  └─ (omitted for brevity)
│     └─ rpi/
|        └─ (omitted for brevity)
├─ favicon.ico
├─ raspbian.public.key
└─ snapshotindex.txt

Some of the directories are intentionally omitted for brevity.

  • ${repository_root}/

    取決於如何設定 packages repository 以及在 server 上的實際路徑;在 /etc/apt/sources.list

    deb uri distribution [component1] [component2] [... ]
    

    uri 指定了 repository_root。例如

    deb https://deb.debian.org/debian stable main contrib non-free
    

    中的 https://deb.debian.org/debian 就是 repository_root。

    • dists/
      • ${distribution}/

        Releasestabletestingunstablesidsuitesidstabletestingunstable,或 codenamebookwormbullseyebuster;可自定義但不建議。

        • Release

          Repository 的 metadata,例如 packages list、components、checksum for the indices。

        • Release.gpg

          OpenPGP signatures。

        • InRelease

        • ${component}/

          例如 maincontribnon-free;可自定義但不建議。

          • binary-${arch}/

            例如 binary-amd64binary-arm64binary-i386

            • Packages

            • Packages.gz

            • Packages.xz

    • pool/

      實際 .deb 檔案的儲存池。

      • ${component}/

        例如 maincontribnon-free;可自定義但不建議。

        • ${package_name}/

          Debian package 的目錄。

          • ${package_name}_${version}_${arch}.deb

            實際的 Debian packages 檔案。

最簡可行產品(Minimum Viable Product)

${repository_root}/
├── dists/
|   └── ${distribution}/
|       ├── Release
|       ├── Release.gpg
|       ├── InRelease
|       └── ${component}/
|           └── binary-${arch}/
|               ├── Packages
|               ├── Packages.gz
|               └── Packages.xz
└── pool/
    └── ${component}/
        └── ${package_name}/
            ├── ${package_name}_${version}_${arch}.deb
            └── (more .deb files)

出處