apt本地仓库

·

配置本地Debian源仓库方案

sudo apt install reprepro apt-rdepends
sudo mkdir -p /srv/localrepo/{conf,packages}
sudo chmod -R 755 /srv/localrepo
sudo chown peter:peter /srv/localrepo

sudo tee /srv/localrepo/conf/distributions <<EOF
Origin: LocalRepo
Label: LocalRepo
Codename: bookworm
Architectures: amd64
Components: main
Description: Minimal local Debian repo
EOF

mkdir -p /tmp/debs
cd /tmp/debs
pkgs=("nginx" "curl")
for pkg in ${pkgs}; do
  apt-rdepends $pkg | grep -v "^ "
done > /tmp/pkglist
while read pkg; do
    apt download "$pkg"
done < /tmp/pkglist

cd /srv/localrepo
for deb in /tmp/debs/*.deb; do
    reprepro includedeb bookworm "$deb"
done

echo "deb [trusted=yes, arch=amd64] file:///srv/localrepo bookworm main" | sudo tee /etc/apt/sources.list.d/localrepo.list

# 每次新增包都要
reprepro export

自动递归拉取包及依赖到本地仓库

# 你也可以让 reprepro 自动“抓取”远程仓库的包 + 所有依赖:
sudo tee /srv/localrepo/conf/updates<<EOF
Name: debian
Suite: bookworm
Components: main
Architectures: amd64
VerifyRelease: false
Method: http://deb.debian.org/debian
EOF

# 然后:
reprepro update
# ⚠️ 但 reprepro update 会拉 component 的所有包,不适合最小仓库,所以推荐手动 includedeb。