install_env_fj.pl

cs2tgz2.pl

tgz2.pl
bonjour je suis nouveau dans la programmation et je dois faire du perl j'aurais aimer avoir de l'aide concernant des script perl car je n'y comprend rien serais t'il possible que quelqu'un m'aide à faire un exercices avec explication SVP MERCI
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
En vous servant des scripts 
cs2tgz2 
et
install_env_fj
et en vous inspirant du script 
cgz
 
écrivez un script qui récupère les fichiers mentionnés dans cs2tgz2
dans leur version présente sur l'ordinateur où le script s'exécute
et en fait une archive compressée semblable à 
env_fj.30.tgz
 
le nombre devant '.tgz' doit être celui de la version de cs que vous récupérez,
et que vous pouvez obtenir par 'csver'
 
Pour faire cela, il faut créer une structure telle que celle produite par la décompression
de env_fj.30.tgz
et la compresser ensuite comme le fait cgz
 
 
 
 
cs2tgz2 = point de départ, donnant la liste des fichiers qui doivent se retrouver dans le tgz pour l'utilisation 'chez soi' des fonctions de 'cs'
 
install_env_fj = script contenu dans le tgz et à utiliser pour l'installer 'chez soi' 
 
cgz = script faisant partie de la configuration 'cs' et automatisant un type de compression
 
env_fj.30.tgz = compression permettant d'installer un environnement de type 'cs', sans accès réseau
(version pas identique à celle que votre script doit réaliser)
Voici les 2 script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/perl
 
 
$files = <<FILES;
raf_liste etc
raf bin x
alias_liste etc
adaf bin x
cgz bin
mt bin
nv bin
install_env_fj bin
csver bin
csv.pl bin r
cs bin
FILES
# $files contient maintenant tous les paramètres de ma configuration standard
# et je peux la modifier très simplement
# le format que j'ai choisi sera explicité dans le 'foreach' qui suit
# (et qui utilise ces paramètres) :
# fichier répertoire exécution
# le 3° paramètre (exécution) étant optionnel
# pour chaque ligne on définit donc :
# le nom du fichier qu'il faut télécharger du serveur
# dans quel sous-répertoire (de /usr/local/) il faut le mettre
# et s'il faut l'exécuter :
#	x : immédiatement
#	r : à chaque démarrage
 
# pour utiliser les paramètres contenus dans $files,
# je préfère les transférer dans une variable de type vecteur, 
# pour pouvoir utiliser 'foreach'
# cela se fait simplement par un 'split' avec une 'fin de ligne' (\n) comme séparateur
# (pour éviter une composante vide, 
# correspondant à ce qu'il y a derrière le dernier \n,
# je fais d'abord un 'chomp'
 
chomp $files;
 
@files = split(/\n/,$files);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
 
$param = shift; 
 
 
$id=`whoami`;
chomp $id;
if ($id ne "root") {
	print "Il faut être 'root' pour pouvoir installer la configuration standard\n";
	exit;
}
 
system("cp bin/* /usr/local/bin/");
system("cp etc/* /usr/local/etc/");
system("/usr/local/bin/raf");
system("/usr/local/bin/adaf");
 
system("chmod +s /sbin/fdisk");
et le fichier cgz
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
 
$nom = shift; 	# 1° paramètre à la ligne de commande
chomp $nom;
 
if ($nom eq "") {
	print "\n1° paramètre = nom du répertoire à compresser\n";
	print "2° paramètre (optionnel) = numéro de la version\n\n";
	exit;
}
 
$nom =~ s/\///;
 
$version = shift; 	# 2° paramètre à la ligne de commande
chomp $version;
 
if ($version eq "") {
	system("tar czvf $nom.tgz $nom");
} else {
	system("tar czvf $nom.$version.tgz $nom");
}