#!/usr/bin/perl -w

#########################################################################################
#
# Script d'installation des programmes tiers pour XCFA:
#    Debian          : apt-get ou aptitude
#
#########################################################################################
#
#    Script revu et adapte our le distribution Gnu/Linux HandyLinux
#
#########################################################################################
#
#     Script cree par:
#       -b52       http://www.xcfa.tuxfamily.org/
#       -leonux    http://ubunteros.tuxfamily.org/
#       -Guilmout
#
#########################################################################################
#
# Licence GPL 3
#
# GNU General Public License
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# OLD ADRESS:
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# NEW ADRESS:
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#########################################################################################


use strict;			# Toutes les variables doivent etre declarees
use warnings;		# Verification de la syntaxe
use File::Copy;		# Utilisation de la fonction copy


my $VERSION = '5.0.2';
my $PACKAGE = 'xcfa_HL_install_all.pl';


#########################################################################################
# CONSTANTES POUR LA TABLE DES APPLICATIONS EXTERNES
#########################################################################################

use constant {
	PACKAGEDEBIAN_64	=> 0,	# Nom du PacKage DEBIAN 64 bits		my $LePaquet
	PACKAGEDEBIAN_32	=> 1,	# Nom du PacKage DEBIAN 32 bits		my $LePaquet
	NAME1				=> 2,	# Nom un
	NAME2				=> 3,	# Nom deux
	NAME3				=> 4,	# Nom trois
	FOUND				=> 5,	# Found=o, NOT Found=N PUIS Installation=I
	DEPOTDEBIAN_64		=> 6,	# Depot Personnel DEB 64 bits		my $ClefDepot
	DEPOTDEBIAN_32		=> 7,	# Depot Personnel DEB 32 bits		my $ClefDepot
	DESCRIPTION			=> 8	# Description du package
};


#########################################################################################
# INDICES
#########################################################################################
my $LePaquet = '';
my $ClefDepot = '';


#########################################################################################
# PAQUETS
#########################################################################################
# dvd+rw-tools
# liba52-0.7.4-dev
# libnotify-bin++
# aacplusenc++
# mp3gain++
# vorbisgain++
# mpc123 / mppdec++
# mppenc++
# mac++
# shorten++
# checkmp3 / mp3_check / mp3check++
# normalize-audio / normalize++
# mplayer++
# faac++
# faad / faad2++
# sox et libsox-fmt-all++
# vorbis-tools++
# lame++
# flac++
# wavpack++
# lsdvd++
# cdparanoia++
# shntool++
# icedax / cdda2wav++

my @tableau = (
["dvd+rw-tools",										# PACKAGEDEBIAN_64
"dvd+rw-tools",											# PACKAGEDEBIAN_32
"dvd+rw-mediainfo",										# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"A program to send desktop notifications"],				# DESCRIPTION

["liba52-0.7.4-dev",									# PACKAGEDEBIAN_64
"liba52-0.7.4-dev",										# PACKAGEDEBIAN_32
"a52dec",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"decode ATSC A/52 audio streams"],						# DESCRIPTION

["libnotify-bin",										# PACKAGEDEBIAN_64
"libnotify-bin",										# PACKAGEDEBIAN_32
"notify-send",											# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"A program to send desktop notifications"],				# DESCRIPTION

["aacplusenc",											# PACKAGEDEBIAN_64
"aacplusenc",											# PACKAGEDEBIAN_32
"aacplusenc",											# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"aacplusenc_0.17.3_amd64.deb",							# DEPOTDEBIAN_64
"aacplusenc_0.17.3_i386.deb",							# DEPOTDEBIAN_32
"AAC+ encoder"],										# DESCRIPTION

["mp3gain",												# PACKAGEDEBIAN_64
"mp3gain",												# PACKAGEDEBIAN_32
"mp3gain",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Normaliseur de fichier mp3"],							# DESCRIPTION

["cd-discid",											# PACKAGEDEBIAN_64
"cd-discid",											# PACKAGEDEBIAN_32
"cd-discid",											# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"read CD and get CDDB discid information"],				# DESCRIPTION

["vorbisgain",											# PACKAGEDEBIAN_64
"vorbisgain",											# PACKAGEDEBIAN_32
"vorbisgain",											# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Normaliseur de fichier ogg"],							# DESCRIPTION

["musepack-tools",										# PACKAGEDEBIAN_64
"musepack-tools",										# PACKAGEDEBIAN_32
"mppdec",												# NAME1
"mpc123",												# NAME2
"mpcdec",												# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"musepack-decoder_7.1.95z67-2_i386.deb",				# DEPOTDEBIAN_32
"MPC Decodeur [ mpcdec ]"],								# DESCRIPTION

["musepack-tools",										# PACKAGEDEBIAN_64
"musepack-tools",										# PACKAGEDEBIAN_32
"mppenc",												# NAME1
"mpcenc",												# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"MPC Encodeur [ mpcenc ]"],								# DESCRIPTION

["monkeys-audio",										# PACKAGEDEBIAN_64
"monkeys-audio",										# PACKAGEDEBIAN_32
"mac",													# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Monkey's Audio [ mac ]"],								# DESCRIPTION

["shorten",												# PACKAGEDEBIAN_64
"shorten",												# PACKAGEDEBIAN_32
"shorten",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"shorten_3.6.1-1_amd64.deb",							# DEPOTDEBIAN_64
"shorten_3.6.0-1_i386.deb",								# DEPOTDEBIAN_32
"Forte compression au format wave"],					# DESCRIPTION

["normalize-audio",										# PACKAGEDEBIAN_64
"normalize-audio",										# PACKAGEDEBIAN_32
"normalize-audio",										# NAME1
"normalize",											# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Normaliseur de fichier wav"],							# DESCRIPTION

["mp3check",											# PACKAGEDEBIAN_64
"mp3check",												# PACKAGEDEBIAN_32
"mp3check",												# NAME1
"checkmp3",												# NAME2
"mp3_check",											# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Cherche des renseignements sur les formats mp3"],		# DESCRIPTION

["mplayer",												# PACKAGEDEBIAN_64
"mplayer",												# PACKAGEDEBIAN_32
"mplayer",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Lecteur et extracteur"],								# DESCRIPTION

["faac",												# PACKAGEDEBIAN_64
"faac",													# PACKAGEDEBIAN_32
"faac",													# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Audio Codeur freeware"],								# DESCRIPTION

["faad",												# PACKAGEDEBIAN_64
"faad",													# PACKAGEDEBIAN_32
"faad",													# NAME1
"faad2",												# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"MPEG-4 AAC decodeur"],									# DESCRIPTION

["sox",													# PACKAGEDEBIAN_64
"sox",													# PACKAGEDEBIAN_32
"sox",													# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Transformation universelle de fichiers son"],			# DESCRIPTION

["vorbis-tools",										# PACKAGEDEBIAN_64
"vorbis-tools",											# PACKAGEDEBIAN_32
"oggenc",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"[Vorbis-tools] Conversion wav : ogg"],					# DESCRIPTION

["lame",												# PACKAGEDEBIAN_64
"lame",													# PACKAGEDEBIAN_32
"lame",													# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Conversion wav : mp3"],								# DESCRIPTION

["flac",												# PACKAGEDEBIAN_64
"flac",													# PACKAGEDEBIAN_32
"flac",													# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Conversion wav : flac"],								# DESCRIPTION

["wavpack",												# PACKAGEDEBIAN_64
"wavpack",												# PACKAGEDEBIAN_32
"wavpack",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"[wavpack] WAVPACK  Hybrid Lossless Audio Compressor"],	# DESCRIPTION

["lsdvd",												# PACKAGEDEBIAN_64
"lsdvd",												# PACKAGEDEBIAN_32
"lsdvd",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Cherche les informations d'un dvd"],					# DESCRIPTION

["cdparanoia",											# PACKAGEDEBIAN_64
"cdparanoia",											# PACKAGEDEBIAN_32
"cdparanoia",											# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Extracteur cd audio"],									# DESCRIPTION

["shntool",												# PACKAGEDEBIAN_64
"shntool",												# PACKAGEDEBIAN_32
"shntool",												# NAME1
"",														# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Decoupage de fichiers sans decodage"],					# DESCRIPTION

["icedax",												# PACKAGEDEBIAN_64
"icedax",												# PACKAGEDEBIAN_32
"icedax",												# NAME1
"cdda2wav",												# NAME2
"",														# NAME3
"",														# FOUND
"",														# DEPOTDEBIAN_64
"",														# DEPOTDEBIAN_32
"Extracteur cd audio"]									# DESCRIPTION

);


#########################################################################################
# RAFFRAICHIR LA CONSOLE
#########################################################################################
system('clear');


#########################################################################################
# DETECTION SI MODE ADMINISTRATEUR
#########################################################################################
my $ModeAdministrateur = ($> != 0) ? "FALSE" : "TRUE";


#########################################################################################
# MODE DEBUG
#########################################################################################
my $ModeDebug = "FALSE";


#########################################################################################
# PRESENTAION DE LA BESTIOLLE
#########################################################################################
print " ______________________________________________________________________
|                                                                      |
|          $PACKAGE                    $VERSION             |
|______________________________________________________________________|
|                                                                      |
|  Script d\'installation des programmes tiers necessaires pour XCFA    |
|                                                                      |
|     Script cree par:                                                 |
|     -b52         http://www.xcfa.tuxfamily.org/                      |
|     -leonux      http://ubunteros.tuxfamily.org/                     |
|     -Guillaume                                                       |
|     Licence GPL 2                                                    |
|______________________________________________________________________|
|                                                                      |","\n";

#########################################################################################
# ROOT ?
#########################################################################################

if ($ModeAdministrateur =~ "TRUE") {
	print "|      VOUS ETES ADMINISTRATEUR : ET L'INSTALLATION S'EFFECTUERA       |\n";
	print "|      Pour une simulation, connectez vous en simple utilisateur       |\n";

} else {
	print "|   VOUS N'ETES PAS ADMINISTRATEUR : UNE SIMULATION SERA EFFECTUEE     |\n";
	print "|   Pour une installation, connectez vous en administrateur            |\n";
}
print "|______________________________________________________________________|\n\n";


#########################################################################################
# RECHERCHE DU TYPE DE CPU
#########################################################################################
my $TypeCpuIsAmd64 = (`uname -m` =~ "x86_64") ? "TRUE" : "FALSE";
print 'Type de CPU ............. : ',`uname -m` ;


#########################################################################################
# PATHNAME DE DOWNLOAD
#########################################################################################
my $path_download;


#########################################################################################
# DEFINITION PATHNAME / SUPPRESSION DOSSIER / CREATION DOSSIER DES TELECHARGEMENTS
#########################################################################################
if ($ModeAdministrateur =~ "TRUE") {
	$path_download = "/tmp/REP_DOWNLOAD_XCFA_ROOT";
} else {
	$path_download = "/tmp/REP_DOWNLOAD_XCFA_USER";
}
if (-d $path_download) {
	system ("rm -rf $path_download");
}
mkdir ($path_download);


#########################################################################################
# VARIABLES
#########################################################################################
my $apt_install = '';		# Contiendra la ligne magique pour l'installation
my $TypePaquet = '';		# DEB 


#########################################################################################
# AFFICHAGE D'UN ENTETE
#########################################################################################
sub affiche_entete
{
	print "\n";
	print "+=============================================================================\n";
	print "|  $_[0]\n";
	print "+=============================================================================\n";
}


#########################################################################################
# SI LE FICHIER CONTENU DANS '$_[0]' EST PRESENT RENVOIE 'TRUE' SINON RENVOIE 'FALSE'
#########################################################################################
sub le_fichier_est_present
{
	if (-f "/sbin/$_[0]") {
		return 'TRUE';
	}
	elsif (-f "/usr/bin/$_[0]") {
		return 'TRUE';
	}
	elsif (-f "/usr/local/bin/$_[0]") {
		return 'TRUE';
	}
	elsif (-f "/usr/sbin/$_[0]") {
		return 'TRUE';
	}
	return 'FALSE';
}


#########################################################################################
# LE TITRE PARLE DE LUI MEME  hein !  ;)
#########################################################################################
sub Choix_des_paquets_pour_installation
{
	my $question;
	my $fichier;
	my $str;
	my $i;
	my $tmp;

	affiche_entete ("C H O I X   D E S   A P P L I C A T I O N S   A   I N S T A L L E R  ...");

	#########################################################################################
	# BOUCLE SUR UNE DEMANDE D INSTALLAION DES FICHIERS ABSENTS
	#########################################################################################
	for ($i=0; $i<@tableau; $i++) {

		#########################################################################################
		# PAR DEFAUT SUR FALSE
		#########################################################################################
		$tableau[$i][ FOUND ] = 'N';

		#########################################################################################
		# TEST LA PRESENCE DES FICHIERS
		#########################################################################################
		$fichier = '';
		if (&le_fichier_est_present($tableau[$i][ NAME1 ]) =~ 'TRUE') {
			$tableau[$i][ FOUND ] = 'o';
			$fichier = $tableau[$i][ NAME1 ];
		} elsif (length($tableau[$i][ NAME2 ]) > 0 && &le_fichier_est_present($tableau[$i][ NAME2 ]) =~ 'TRUE') {
			$tableau[$i][ FOUND ] = 'o';
			$fichier = $tableau[$i][ NAME2 ];
		} elsif (length($tableau[$i][ NAME3 ]) > 0 && le_fichier_est_present($tableau[$i][ NAME3 ]) =~ 'TRUE') {
			$tableau[$i][ FOUND ] = 'o';
			$fichier = $tableau[$i][ NAME3 ];
		}

		if ((length($fichier) > 0) && ($tableau[$i][ FOUND ] =~ "o")) {
			$str = "DEJA INSTALLE:    $fichier ";
			while (length($str) < 37) { $str .= "."; }
			$str .= " $tableau[$i][ DESCRIPTION ] ";
			print "$str\n";
		}

		$question = 'n';
		if ($tableau[$i][ FOUND ] =~ "N") {
			$question = 'o';
		}
		if ($question =~ "o") {
			$str = "Installation de:  $tableau[$i][ $LePaquet ] ";
			while (length($str) < 37) { $str .= "."; }
			$str .= " $tableau[$i][ DESCRIPTION ] ";
			while (length($str) < 100) { $str .= "-"; }
			$str .= "> [O/n] ? ";
			print $str;
			chomp($tmp = <STDIN>);
			if ($tmp !~ 'n') {
				# INSTALLATION
				$tableau[$i][ FOUND ] = "I";
			}
		} else {
			# PAS D INSTALLATION
			$tableau[$i][ FOUND ] = "N";
		}
	}
}


#########################################################################################
# LE TITRE PARLE DE LUI MEME  hein !  ;)
#########################################################################################
sub Installation_depuis_les_depots
{
	my $i;
	my $fichier;

	affiche_entete ("I N S T A L L A T I O N  D E S   A P P L I C A T I O N S...");

	for ($i=0; $i<@tableau; $i++) {

		#########################################################################################
		# L INSTALLATION COMMENCE
		#########################################################################################
		if ($tableau[$i][ FOUND ] =~ "I") {

			$fichier = '';

			#########################################################################################
			# AMD64 DEB INSTALL
			# I386 DEB INSTALL
			#########################################################################################
			if( $TypePaquet =~ "DEB" ) {

				#########################################################################################
				# DOWNLOAD
				#########################################################################################
				if (length($tableau[$i][ $ClefDepot ]) > 0) {
					$fichier = $tableau[$i][ $ClefDepot ];
					if ($TypeCpuIsAmd64 =~ "TRUE") {
						print "wget --quiet --directory-prefix=$path_download http://download.tuxfamily.org/xcfaudio/convertisseurs/amd64/Deb/$fichier","\n";
						system("wget --quiet --directory-prefix=$path_download http://download.tuxfamily.org/xcfaudio/convertisseurs/amd64/Deb/$fichier");
					} else {
						print "wget --quiet --directory-prefix=$path_download http://download.tuxfamily.org/xcfaudio/convertisseurs/i386/Deb/$fichier","\n";
						system("wget --quiet --directory-prefix=$path_download http://download.tuxfamily.org/xcfaudio/convertisseurs/i386/Deb/$fichier");
					}
					if ($ModeAdministrateur =~ "TRUE") {
						system("dpkg --unpack $path_download/$fichier");
						system("$apt_install -f");
					} else {
						print "dpkg --unpack $path_download/$fichier\n";
						print "$apt_install -f\n";
					}
				}

				#########################################################################################
				# DEPOT
				#########################################################################################
				else {
					$fichier = $tableau[$i][ $LePaquet ];
					if ($ModeAdministrateur =~ "TRUE") {
						system("$apt_install $fichier");
					} else {
						print "$apt_install $fichier\n";
					}
				}
			}
		}
	}
}


#########################################################################################
# RECHERCHE LE TYPE DE PAQUET: DEB
#########################################################################################
if ((le_fichier_est_present("apt-get") =~ "TRUE") || (le_fichier_est_present("aptitude") =~ "TRUE")) {
	# DEBIAN
	$TypePaquet = 'DEB';
	print "programme ............... : [ apt-get | aptitude ]\n";
}
print "Type de paquet utilise .. : $TypePaquet\n";


#########################################################################################
###############  D E B U G  ## TEST LES TYPES DE PAQUET: DEB  ##  D E B U G  ############
#########################################################################################
#
# Cette option est activee si le parametres 'debug' est passe sur la ligne de commande
#
#########################################################################################
if (($ModeAdministrateur =~ "FALSE") && (@ARGV == 1)) {
	my $tmp;

	if ($ARGV[0] =~ "debug") {
		print "\nSIMULATION MODE DEBUG\n";
		print "\t[  1 ] DEBIAN apt-get   64 bits\n";
		print "\t[  2 ] DEBIAN apt-get   32 bits\n";
		print "\t[  3 ] DEBIAN aptitude  64 bits\n";
		print "\t[  4 ] DEBIAN aptitude  32 bits  >  ?  ";

		chomp($tmp = <STDIN>);
		
		if( $tmp =~ "1" ) {	
			$TypePaquet = 'DEB';
			$apt_install = 'apt-get install';
			$TypeCpuIsAmd64 = "TRUE";
			$LePaquet = PACKAGEDEBIAN_64;
			$ClefDepot = DEPOTDEBIAN_64;
		}
		elsif( $tmp =~ "2" ) {
			$TypePaquet = 'DEB';
			$apt_install = 'apt-get install';
			$TypeCpuIsAmd64 = "FALSE";
			$LePaquet = PACKAGEDEBIAN_32;
			$ClefDepot = DEPOTDEBIAN_32;
		}
		elsif( $tmp =~ "3" ) {
			$TypePaquet = 'DEB';
			$apt_install = 'aptitude --assume-yes -y install';
			$TypeCpuIsAmd64 = "TRUE";
			$LePaquet = PACKAGEDEBIAN_64;
			$ClefDepot = DEPOTDEBIAN_64;
		}
		elsif( $tmp =~ "4" ) {
			$TypePaquet = 'DEB';
			$apt_install = 'aptitude --assume-yes -y install';
			$TypeCpuIsAmd64 = "FALSE";
			$LePaquet = PACKAGEDEBIAN_32;
			$ClefDepot = DEPOTDEBIAN_32;
		}
		else {
			print "ERREUR DANS LE CHOIX  :/\n";
			exit 1;
		}
			
		$ModeDebug = "TRUE";
		affiche_entete ("Mode Debug is TRUE");
		print "TypePaquet     = $TypePaquet\n";
		print "apt_install    = $apt_install\n";
		print "TypeCpuIsAmd64 = $TypeCpuIsAmd64\n";
		print "LePaquet       = $LePaquet\n";
		print "ClefDepot      = $ClefDepot\n";
	}
}


if ($ModeDebug =~ "FALSE") {
	#########################################################################################
	# PAQUETS DEBIAN
	#########################################################################################
	if( $TypePaquet =~ "DEB" ) {
		my $apt_get = 'FALSE';
		my $aptitude = 'FALSE';
		my $tmp = '1';

		if (le_fichier_est_present("apt-get") =~ 'TRUE') {
			$apt_get = 'TRUE';
			$apt_install = 'apt-get install';
		} else {
			$apt_get = 'FALSE';
		}

		if (le_fichier_est_present("aptitude") =~ 'TRUE') {
			$aptitude = 'TRUE';
			$apt_install = 'aptitude --assume-yes -y install';
		} else {
			$aptitude = 'FALSE';
		}

		# APT-GET ou APTITUDE ?
		if (($aptitude =~ 'TRUE') && ($apt_get =~ 'TRUE')) {
			$apt_install = 'apt-get install';
			print "\n\t",'Choix du programme d\'installation',"\n","\t",'[ 1 ] APT-GET par defaut',"\n\t",'[ 2 ] APTITUDE ? ';
			chomp($tmp = <STDIN>);
			if ($tmp =~ '2') {
				$apt_install = 'aptitude --assume-yes -y install';
			}
		} elsif ($apt_get =~ 'TRUE') {
			$apt_install = 'apt-get install';
			print "\n\t",'aptitude est ABSENT et APT-GET sera l\'installateur par defaut',"\n";
			print "\t",'Continuer [O/n] ? ';
			chomp($tmp = <STDIN>);
			if ($tmp =~ 'n') {
				print "\n";
				exit 1;
			}
		} elsif ($aptitude =~ 'TRUE') {
			$apt_install = 'aptitude --assume-yes -y install';
			print "\n\t",'apt-get est ABSENT et APTITUDE sera l\'installateur par defaut',"\n";
			print "\t",'Continuer [O/n] ? ';
			chomp($tmp = <STDIN>);
			if ($tmp =~ 'n') {
				print "\n";
				exit 1;
			}
		} else {
			print "\n";
			print "PROBLEME DE RECONNAISSANCE DES PAQUETS DEB  !\n";
			print "apt-get, aptitude ABSENTS !  !\n";
			print "Veuillez prevenir l auteur  !\n";
			print "\n";
			exit 1
		}

		if ($TypeCpuIsAmd64 =~ "TRUE") {
			$LePaquet = PACKAGEDEBIAN_64;
			$ClefDepot = DEPOTDEBIAN_64;
		} else {
			$LePaquet = PACKAGEDEBIAN_32;
			$ClefDepot = DEPOTDEBIAN_32;
		}
	} # End if


	print "\nCette commande [ $apt_install ] sera utilisee\n";
} # End if


#########################################################################################
# CHOIX PAR L UTILISATEUR DES PROGRAMMES A INSTALLER
#########################################################################################
&Choix_des_paquets_pour_installation();


#########################################################################################
# INSTALLATION DEPUIS LES DEPOTS
#########################################################################################
&Installation_depuis_les_depots();


print "\n\n";
print '=============================',"\n";
print ' !  FIN DE L\'INSTALLATION  !',"\n";
print '=============================',"\n\n";

