Re: Debian mirror scripts
Cajus Pollmeier <cajus@naasa.net> writes:
> Am 30.01.2005 um 16:01 schrieb Thiemo Seufer:
>
>> Cajus Pollmeier wrote:
>>> Hi,
>>>
>>> I'm looking for a script that regenerates Packages* and Release
>>> files for a complete mirror. Due to some installer development, I
>>> currently need to switch the mirrors during installation in order to
>>> get up to date packages.
>>>
>>> Tried to work around this with a simple script that merges my
>>> packages into the local mirror and regenerates everything as
>>> needed. But sadly this doesn't seem to be perfect :-( The installer
>>> just doesn't want to get some of these packages, even if the md5's
>>> are correct. Switching from http to ftp gets some more of them and
>>> stucks some packages later. Grrr.
>>
>> You might want to compare your script with the one for partial d-i
>> test mirrors, available from d-i SVN in trunk/scripts/testmirror.
>
> Here's the result of some testing:
>
> debpool: is fine for new pools, but recreating the whole mirror with
> .deb and .udeb packages didn't work and I'm not the perl
> guy who's capable of fixing it.
> dak: too complicated for fire and forget
> mirrorer: not tested because alioth is still down
> departialmirror: not a package, after resolving some dependencies,
> it actually did not do what I wanted.
>
> Finally I fixed the quick'n dirty bash script. It lacks features like
> gpg
> signing, SHA entries in Releases, etc., but for a local test mirror its
> failrly enough ;-) If someone's interested, I can clean it up an put it
> somewhere.
>
> Thanks for your hints!
>
> Cheers,
> Cajus
>From the amd64 archive on alioth. Enjoy.
MfG
Goswin
----------------------------------------------------------------------
# Rebuild Packages, Sources and Release files
for SUITE in testing unstable; do
case $SUITE in
testing) CODENAME=sarge;;
unstable) CODENAME=sid;;
esac
echo > "$STRUCT/dists/$CODENAME/Release" "Origin: Debian-amd64"
echo >> "$STRUCT/dists/$CODENAME/Release" "Label: Debian-amd64"
echo >> "$STRUCT/dists/$CODENAME/Release" "Suite: $SUITE"
echo >> "$STRUCT/dists/$CODENAME/Release" "Codename: $CODENAME"
echo >> "$STRUCT/dists/$CODENAME/Release" "Date: `date -u`"
echo >> "$STRUCT/dists/$CODENAME/Release" "Architectures: $ARCHS"
echo >> "$STRUCT/dists/$CODENAME/Release" "Components: main main/debian-installer"
echo >> "$STRUCT/dists/$CODENAME/Release" "Description: Debian amd64 port"
echo >> "$STRUCT/dists/$CODENAME/Release" "MD5Sum:"
for FILE in main/source/Release main/source/Sources.gz main/binary-amd64/Release main/binary-amd64/Packages main/binary-amd64/Packages.gz main/debian-installer/binary-amd64/Packages main/debian-installer/binary-amd64/Packages.gz contrib/source/Release contrib/source/Sources.gz contrib/binary-amd64/Release contrib/binary-amd64/Packages contrib/binary-amd64/Packages.gz non-free/source/Release non-free/source/Sources.gz non-free/binary-amd64/Release non-free/binary-amd64/Packages non-free/binary-amd64/Packages.gz; do
echo " `md5sum $STRUCT/dists/$CODENAME/$FILE | cut -b0-32` `wc -c < $STRUCT/dists/$CODENAME/$FILE` $FILE" >> "$STRUCT/dists/$CODENAME/Release"
done
echo "Creator: $0" >> "$STRUCT/dists/$CODENAME/Release"
# sign Release file
gpg --default-key "Debian-amd64 archive key (2004) <debian-amd64@lists.debian.org>" --armor --detach-sign "$STRUCT/dists/$CODENAME/Release"
mv "$STRUCT/dists/$CODENAME/Release.asc" "$STRUCT/dists/$CODENAME/Release.gpg"
done
Reply to: