﻿




改进版（推荐用这个）{
#!/bin/bash
set -e

BASE="/media/mirrors/debian"
DIST="bullseye"

PKG_DIR="$BASE/dists/$DIST/pkg"
POOL_DIR="$BASE/pool/main"
DISTS_DIR="$BASE/dists/$DIST/main"

mkdir -p "$POOL_DIR"
mkdir -p "$DISTS_DIR/binary-amd64"
mkdir -p "$DISTS_DIR/binary-i386"

echo "[1/3] 转换到 pool..."

find "$PKG_DIR" -type f -name "*.deb" | while read deb; do
    filename=$(basename "$deb")
    pkgname=$(echo "$filename" | cut -d_ -f1)
    first=${pkgname:0:1}

    target_dir="$POOL_DIR/$first/$pkgname"
    mkdir -p "$target_dir"

    ln -f "$deb" "$target_dir/$filename"
done

echo "[2/3] 生成 Packages..."

cd "$BASE"

dpkg-scanpackages -a amd64 pool /dev/null > dists/$DIST/main/binary-amd64/Packages
gzip -kf dists/$DIST/main/binary-amd64/Packages

dpkg-scanpackages -a i386 pool /dev/null > dists/$DIST/main/binary-i386/Packages
gzip -kf dists/$DIST/main/binary-i386/Packages

echo "[3/3] 完成 ✔"

}