Pour rajouter une branche, par exemple wheezy/nvidia
Rajout des répertoires pool/wheezy/nvidia/i386 et pool/wheezy/nvidia/amd64 ainsi que dists/wheezy/nvidia/binary-i386 et dists/wheezy/nvidia/binary-amd64
Puis faire
apt-ftparchive packages pool/wheezy/nvidia/i386/ | gzip > dists/wheezy/nvidia/binary-i386/Packages.gz
zcat dists/wheezy/nvidia/binary-i386/Packages.gz | bzip2 > dists/wheezy/nvidia/binary-i386/Packages.bz2
zcat dists/wheezy/nvidia/binary-i386/Packages.gz >dists/wheezy/nvidia/binary-i386/Packages
apt-ftparchive packages pool/wheezy/nvidia/amd64/ | gzip > dists/wheezy/nvidia/binary-amd64/Packages.gz
zcat dists/wheezy/nvidia/binary-amd64/Packages.gz | bzip2 >dists/wheezy/nvidia/binary-amd64/Packages.bz2
zcat dists/wheezy/nvidia/binary-amd64/Packages.gz >dists/wheezy/nvidia/binary-amd64/Packages
et enfin finir par la signature du dépot en ayant soin de rajouter nvidia à Components dans le wheezy.conf.
Un script que j’utilise est le suivant:
[code]#!/bin/sh
VERSION=$1
DISTRIBUTION=depot
if [ ! -z $2 ] ; then
DISTRIBUTION=$2
fi
LISTE=$(grep Component $VERSION.conf | sed ‘s/^."(.)".*$/\1/’ | sed -e ‘s/divers//’)
echo $LISTE
cd /var/www/$DISTRIBUTION
consultation de divers
mkdir -p dists/$VERSION/divers/binary-i386/
mkdir -p dists/$VERSION/divers/binary-amd64/
apt-ftparchive packages pool/$VERSION/i386/ | gzip > dists/$VERSION/divers/binary-i386/Packages.gz
zcat dists/$VERSION/divers/binary-i386/Packages.gz | bzip2 > dists/$VERSION/divers/binary-i386/Packages.bz2
zcat dists/$VERSION/divers/binary-i386/Packages.gz >dists/$VERSION/divers/binary-i386/Packages
apt-ftparchive packages pool/$VERSION/amd64/ | gzip > dists/$VERSION/divers/binary-amd64/Packages.gz
zcat dists/$VERSION/divers/binary-amd64/Packages.gz | bzip2 >dists/$VERSION/divers/binary-amd64/Packages.bz2
zcat dists/$VERSION/divers/binary-amd64/Packages.gz >dists/$VERSION/divers/binary-amd64/Packages
for nom in $LISTE ; do
echo Fabrication de $nom
mkdir -p dists/$VERSION/$nom/binary-i386/
mkdir -p dists/$VERSION/$nom/binary-amd64/
apt-ftparchive packages pool/$VERSION/$nom/i386/ | gzip > dists/$VERSION/$nom/binary-i386/Packages.gz
zcat dists/$VERSION/$nom/binary-i386/Packages.gz | bzip2 > dists/$VERSION/$nom/binary-i386/Packages.bz2
zcat dists/$VERSION/$nom/binary-i386/Packages.gz >dists/$VERSION/$nom/binary-i386/Packages
apt-ftparchive packages pool/$VERSION/$nom/amd64/ | gzip > dists/$VERSION/$nom/binary-amd64/Packages.gz
zcat dists/$VERSION/$nom/binary-amd64/Packages.gz | bzip2 >dists/$VERSION/$nom/binary-amd64/Packages.bz2
zcat dists/$VERSION/$nom/binary-amd64/Packages.gz >dists/$VERSION/$nom/binary-amd64/Packages
done
apt-ftparchive -c $VERSION.conf release dists/$VERSION/ > /tmp/Release.tmp
mv /tmp/Release.tmp dists/$VERSION/Release
cd dists/$VERSION/
rm Release.gpg
gpg --sign -ba -o Release.gpg Release
[/code]
La structure est la suivante
. -> dists -> divers --> binary-amd64
| | |-> binary-i386
| |-> nom1 --> binary-amd64
| | |-> binary-i386
| |-> nom2 (etc)
|-> pool --> amd64 (paquets de divers/amd64)
|-> i386 (paquets de divers/i386)
|-> nom1 --> amd64 (paquets de nom1/amd64)
| |-> i386 (paquets de nom1/i386)
|-> nom2 --> amd64 (etc)
Il suffit de faire un fichier $VERSION.conf (par exemple wheezy.conf) contenant un champ Components à jour pour que le script fasse tout le reste.
Si vous me demandez pourquoi ne pas utilisez reprepro, je vous répond que je trouve ça compliqué, que c’est comme ça, et surtout que ça n’existait pas avant. Voilà.
(et encore, là j’utilise apt-ftparchive ce qui est récent!)