Le 14/06/2026 à 00:14, Jack Sparrow a écrit :
bonjour,

je suis a la recherche d'un bon tuto pour faire un depot apt local sur
un hd usb pour une utilisation offline

l'objectif est de pouvoir installer les paquet et donc des logiciel
sans connecter l'ordinateur a internet

Bonjour,

Pour installer/mettre à jour des postes locaux en économisant la bande passante ou sans connexion internet, j’utilise un dépôt-miroir local copié sur disque externe. J’ai un certain nombre de scripts pour gérer tout ça et j’ai toujours en projet de documenter ça sur mon wiki, mais je n’ai pas trop trouvé le temps de le faire (https://jddubois.ouvaton.org/wiki/).

Le principe est d’avoir une machine «master» (physique ou virtuelle) qui est installée avec tous les paquets sélectionnés comme utiles. L’objectif est d’avoir un dépôt qui soit un miroir partiel de la distribution Debian, une mini-distribution en quelque sorte.

Quand j’étais administrateur système j’avais mis en place un dépôt de paquets locaux, complémentaires à Debian pour l’installation et la mise en place des postes de travail. J’ai un peu continué avec https://multiciel.ouvaton.org/debian/

Le dépôt sur disque local apporte des avantages :
- économie de bande passante dès qu’il y a plus d’un poste à installer/mettre à jour. - le dépôt local est à jour des alertes de sécurité et des proposed-updates ou backports si utilisés (par exemple j’installe LibreOffice en version backports).

Évidemment, si le poste de destination est connecté à internet, il faut vérifier que les dépôts Debian, notamment security sont bien activés par la suite.

L’idée est de créer un pool de paquets à partir des paquets installés sur la machine :


#!/bin/bash
dirname=pool.`dpkg --print-architecture`
mkdir -p $dirname
#rm -rf $dirname/*
chmod a+rwX $dirname
cd $dirname
aptitude search '~i'|sed 's/^...//'|awk '{print $1}'|xargs apt-get download
cd ..
du -sch pool*

Ensuite je me suis inspiré de https://earthly.dev/blog/creating-and-hosting-your-own-deb-packages-and-apt-repo/

Il faut créer une autorité de certification qui va signer les dépots (et bien protéger la clé privée...) Il faut créer les fichiers Packages Packages.gz Release Release.gpg InRelease.

Quelques extraits de mon script de création du dépôt qui fait d’autres choses :

#do_hash de https://earthly.dev/blog/creating-and-hosting-your-own-deb-packages-and-apt-repo/
do_hash() {
HASH_NAME=$1
HASH_CMD=$2
echo "${HASH_NAME}:"
for f in $(find -type f); do
f=$(echo $f | cut -c3-) # remove ./ prefix
if [ "$f" = "Release" ]; then
continue
fi
echo " $(${HASH_CMD} ${f} | cut -d" " -f1) $(wc -c $f)"
done
}


export GNUPGHOME=chemin vers le dossier openpgp contenant la clé privée
for arch in amd64 i386
do
echo "==== $arch ==="
[ -d pool.$arch ] || continue
rm -rf $arch
mkdir -p $arch
echo dpkg-scanpackages -a $arch pool.$arch
dpkg-scanpackages -m -a $arch pool.$arch > $arch/Packages
echo `grep Package: $arch/Packages|wc -l` Packages / `ls pool.$arch/*.deb|wc -l` fichiers dans pool.$arch
gzip -9k $arch/Packages
#source :https://earthly.dev/blog/creating-and-hosting-your-own-deb-packages-and-apt-repo/
cd $arch
cat << EOF >Release
Origin: XXX Repository
Label: XXX
Suite: $arch/
Codename: $arch/
Version: 1.0
Architectures: $arch
Components: $arch/
Description: XXX miroir partiel Debian
Date: $(date -Ru)
EOF
do_hash "MD5Sum" "md5sum" >>Release
do_hash "SHA1" "sha1sum" >>Release
do_hash "SHA256" "sha256sum" >>Release
cat Release | gpg --default-key multiciel.org -abs > Release.gpg
cat Release | gpg --default-key multiciel.org -abs --clearsign > InRelease
cd ..
done

En espérant que ça puisse aider,
bonne journée,
Jean-Daniel

--
------------------------------------------------------------------------
Jean-Daniel Dubois.
jddubois.ouvaton.org <https://jddubois.ouvaton.org>
mastodon: mamot.fr/@jddubois <https://mamot.fr/@jddubois>
(limitation de garantie) <https://jddubois.ouvaton.org/wiki/doku.php/exclusion-garantie>

Répondre à