J'ai r�alis� un petit script pour sauvegarder mon r�pertoire: /var/cache/apt/archives/ il est en perl. J'ai pens� que cela pouvait vous int�resser. il s'agit de la version version 0.5. Il est donc n�cessaire de modifier la ligne $rep_sauv. Il s'agit du r�pertoire de sauvegarde. et de la ligne my $nom Il s'agit du non du CD une fois grav�.
Pour terminer, un petit
apt-get autoclean
sauv_package
et il ne vous reste plus qu'a graver le r�pertoire de sauvegarde sur un
CD.
Voici le script, qu'il vous suffit de recopier et de copier dans
/usr/local/bin/sauv_package
******************************D�but Script*****************
#!/usr/bin/perl -w
# Cr�ation par Zuthos 2004
# [EMAIL PROTECTED]
# sauv_package
# version 0.5
use strict;
use Getopt::Long; # module pour accepter les options
use File::Copy; # module copie de fichier
my $rep="/var/cache/apt/archives/"; # repertoire contenant les packages
my $fichier;
my $rep_sauv="/home/USER/apt"; # repertoire de sauvegarde
my $fich_package="$rep_sauv/Packages";
my $fich_ovver="$rep_sauv/ovver.cache2";
my $fich_ovver_b="$rep_sauv/ovver.cache"; # utile pour cr�er le fichier
package
my $nom="Debian GNU/Linux 3.0 r0 \"Woody\" - UnOfficial i386 Binary-8
(20040717)"; # nom du futur CD
my $stat=0;
my @nouv="";
# Cr�ation de l'arborescence de sauvegarde
mkdir $rep_sauv,0777 ;
mkdir "$rep_sauv/.disk",0777;
# cr�ation du fichier info du CD avec le nom du CD
open(INFO,">$rep_sauv/.disk/info");
print INFO $nom ;
close (INFO);
# recuperation de la liste des package
opendir(AR,"$rep") || die "Impossible d'ouvrir $rep : $!";
my @fichiers=grep(/\.deb/i, readdir AR);
close (AR);
# copie de tous les fichiers vers le repertoire de destination
# et pr�paration du fichier de control Package
foreach $fichier (@fichiers) {
copy("$rep$fichier" , "$rep_sauv/$fichier") || warn "Impossible de
copier le fichier : $!";
system("dpkg-deb -I $rep_sauv/$fichier | grep Package: >> $fich_ovver");
system("dpkg-deb -I >> $rep_sauv/$fichier | grep Priority: >>
$fich_ovver");
system("dpkg-deb -I $rep_sauv/$fichier | grep Section: >> $fich_ovver");
print "$fichier : copi�\n";
}
##################Cr�ation du fichier Ovver
open(FICHOVVER,"$fich_ovver");
open(FICHOVVERB,">$fich_ovver_b");
while(<FICHOVVER>) {
if(m/Package:/) {
$_=substr($_,10,-1);
print FICHOVVERB "$_ " ;
}
if(m/Priority:/) {
$_=substr($_,11,-1);
print FICHOVVERB "$_ " ;
}
if(m/Section:/) {
$_=substr($_,10);
print FICHOVVERB $_ ;
}
}
close(FICHOVVERB);
close(FICHOVVER);
#############Cr�ation du fichier Package
system("dpkg-scanpackages $rep_sauv/ $fich_ovver > $fich_package");
system("gzip -c $fich_package > $fich_package.gz");
******************************D�but Script*****************
Voila, en esp�rant que cela sera utile. Bien entendu, vous pouvez
modifier et am�liorer ce script. Pour info, j'ai pr�vu que la version
1.0 permettent de modifier par ligne de commande le non du CD ...
--
"Combattre pour la paix, c'est comme niquer pour la chastet�."
Slogan non violent.
pgp2s3qbzFAcN.pgp
Description: PGP signature

