Subversion Repositories ALCASAR

Rev

Rev 638 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 638 Rev 640
1
#!/bin/sh
1
#!/bin/sh
2
# $Id: alcasar-urpmi.sh 638 2011-06-18 21:19:04Z richard $
2
# $Id: alcasar-urpmi.sh 640 2011-06-19 19:52:58Z richard $
3
# script de mise en place des dépots RPM 
3
# script de mise en place des dépots RPM 
4
# 3abtux & rexy
4
# 3abtux & rexy
5
 
5
 
6
VERSION="2010.2"
6
VERSION="2010.2"
7
ARCH="i586" 
7
ARCH="i586" 
8
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
8
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
9
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php squid dansguardian postfix MySQL logwatch ntp awstats mondo cdrecord buffer vim-enhanced bind-utils wget arpscan ulogd openssh-server php-xml pam_ccreds rng-utils lsb-release dnsmasq sudo cronie-anacron pciutils clamav pm-fallback-policy"
9
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php squid dansguardian postfix MySQL logwatch ntp awstats mondo cdrecord buffer vim-enhanced bind-utils wget arpscan ulogd openssh-server php-xml pam_ccreds rng-utils lsb-release dnsmasq sudo cronie-anacron pciutils clamav pm-fallback-policy"
10
 
10
 
11
rpm_repository_sync ()
11
rpm_repository_sync ()
12
{
12
{
13
echo ${!MIRRORLIST}
13
echo ${!MIRRORLIST}
14
urpmi.removemedia -a
14
urpmi.removemedia -a
15
urpmi.addmedia --wget --probe-synthesis --mirrorlist ${!MIRRORLIST} main /media/main/release
15
urpmi.addmedia --wget --probe-synthesis --mirrorlist ${!MIRRORLIST} main /media/main/release
16
urpmi.addmedia --wget --update --probe-synthesis --mirrorlist ${!MIRRORLIST} main_updates /media/main/updates
16
urpmi.addmedia --wget --update --probe-synthesis --mirrorlist ${!MIRRORLIST} main_updates /media/main/updates
17
urpmi.addmedia --wget --probe-synthesis --mirrorlist ${!MIRRORLIST} contrib /media/contrib/release
17
urpmi.addmedia --wget --probe-synthesis --mirrorlist ${!MIRRORLIST} contrib /media/contrib/release
18
urpmi.addmedia --wget --update --probe-synthesis --mirrorlist ${!MIRRORLIST} contrib_updates /media/contrib/updates
18
urpmi.addmedia --wget --update --probe-synthesis --mirrorlist ${!MIRRORLIST} contrib_updates /media/contrib/updates
19
}
19
}
20
 
20
 
21
rpm_error ()
21
rpm_error ()
22
{
22
{
23
echo
23
echo
24
echo "Relancez l'installation ultérieurement."
24
echo "Relancez l'installation ultérieurement."
25
echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
25
echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
26
echo "Try an other install later."
26
echo "Try an other install later."
27
echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
27
echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
28
}
28
}
29
# extract the current Mandriva version and hardware architecture (i586 ou X64)
29
# extract the current Mandriva version and hardware architecture (i586 ou X64)
30
fic=`cat /etc/product.id`
30
fic=`cat /etc/product.id`
31
old="$IFS"
31
old="$IFS"
32
IFS=","
32
IFS=","
33
set $fic
33
set $fic
34
for i in $*
34
for i in $*
35
do
35
do
36
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
36
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
37
	then 
37
	then 
38
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
38
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
39
		if [ $CURRENT_VERSION != "2009.0" ] && [ $CURRENT_VERSION != "2009.1" ] && [ $CURRENT_VERSION != "2010.0" ] && [ $CURRENT_VERSION != "2010.1" ] && [ $CURRENT_VERSION != "2010.2" ] 
39
		if [ $CURRENT_VERSION != "2009.0" ] && [ $CURRENT_VERSION != "2009.1" ] && [ $CURRENT_VERSION != "2010.0" ] && [ $CURRENT_VERSION != "2010.1" ] && [ $CURRENT_VERSION != "2010.2" ] 
40
		then
40
		then
41
		      echo "La migration automatique du système ne peut être réalisée."
41
		      echo "La migration automatique du système ne peut être réalisée."
42
		      echo "Réalisez une mise à jour manuelle (cf. doc)."
42
		      echo "Réalisez une mise à jour manuelle (cf. doc)."
43
		      echo "The automatic system update can't perform."
43
		      echo "The automatic system update can't perform."
44
		      echo "Do a manual update (see doc)."
44
		      echo "Do a manual update (see doc)."
45
		exit 1		
45
		exit 1		
46
		fi
46
		fi
47
	fi
47
	fi
48
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
48
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
49
	then 
49
	then 
50
		ARCH=`echo $i|cut -d"=" -f2`
50
		ARCH=`echo $i|cut -d"=" -f2`
51
	fi
51
	fi
52
done
52
done
53
IFS="$old"
53
IFS="$old"
54
# We prefer wget than curl
54
# We prefer wget than curl
55
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
55
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
56
# Set the RPM repository
56
# Set the RPM repository
57
MIRROR_NBR=2
57
MIRROR_NBR=2
58
#                       For french ALCASARistes
58
#                       For french ALCASARistes
59
MIRRORLIST1="http://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/$VERSION/$ARCH"
59
MIRRORLIST1="http://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/$VERSION/$ARCH"
60
#                       For International install
60
#                       For International install
61
MIRRORLIST2="http://api.mandriva.com/mirrors/basic.$VERSION.$ARCH.list"
61
MIRRORLIST2="http://api.mandriva.com/mirrors/basic.$VERSION.$ARCH.list"
62
try_nb="0"; nb_repository="0"
62
try_nb="0"; nb_repository="0"
63
while [ "$nb_repository" != "4" ]
63
while [ "$nb_repository" != "4" ]
64
do
64
do
65
	try_nb=`expr $try_nb + 1`
65
	try_nb=`expr $try_nb + 1`
66
	MIRRORLIST="MIRRORLIST$try_nb"
66
	MIRRORLIST="MIRRORLIST$try_nb"
67
	rpm_repository_sync 
67
	rpm_repository_sync 
68
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
68
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
69
	if [ "$nb_repository" != "4" ]
69
	if [ "$nb_repository" != "4" ]
70
	then
70
	then
71
		echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
71
		echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
72
		echo "An error occurs when synchronising the repositories N°$try_nb"
72
		echo "An error occurs when synchronising the repositories N°$try_nb"
73
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
73
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
74
		then
74
		then
75
			rpm_error
75
			rpm_error
76
			exit 1
76
			exit 1
77
		fi
77
		fi
78
		echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
78
		echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
79
		echo "Do you wan't to try a synchronisation with an other repository?"
79
		echo "Do you wan't to try a synchronisation with an other repository?"
80
		response=0
80
		response=0
81
		PTN='^[oOnNyY]$'
81
		PTN='^[oOnNyY]$'
82
		until [[ $(expr $response : $PTN) -gt 0 ]]
82
		until [[ $(expr $response : $PTN) -gt 0 ]]
83
		do
83
		do
84
			read response
84
			read response
85
		done
85
		done
86
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
86
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
87
		then
87
		then
88
			exit 1
88
			exit 1
89
		fi
89
		fi
90
	fi
90
	fi
91
done
91
done
92
# download RPM in cache 
92
# download RPM in cache 
93
echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
93
echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
94
echo "Updated RPM download. Please wait ..."
94
echo "Updated RPM download. Please wait ..."
95
echo "Il est temps d'aller prendre un café :-) "
95
echo "Il est temps d'aller prendre un café :-) "
96
echo "You should now take a Beer ;-) "
96
echo "You should now take a Beer ;-) "
97
urpmi --downloader wget --auto --auto-update --quiet --test --retry 2
97
urpmi --downloader wget --auto --auto-update --quiet --test --retry 2
98
if [ "$?" != "0" ]
98
if [ "$?" != "0" ]
99
then
99
then
100
	echo
100
	echo
101
	echo "Une erreur a été détectée lors de la récupération des paquetages."
101
	echo "Une erreur a été détectée lors de la récupération des paquetages."
102
	echo "An error occurs when downloading"
102
	echo "An error occurs when downloading"
103
	rpm_error
103
	rpm_error
104
	exit 1
104
	exit 1
105
fi
105
fi
106
# update with cached RPM
106
# update with cached RPM
107
urpmi --auto --auto-update
107
urpmi --auto --auto-update
108
# Download of ALCASAR specifics RPM in cache (and test)
108
# Download of ALCASAR specifics RPM in cache (and test)
109
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
109
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
110
echo "Download of complementary packages. Please wait ..."
110
echo "Download of complementary packages. Please wait ..."
111
urpmi --downloader=wget --auto $PACKAGES --quiet --test --retry 2
111
urpmi --downloader=wget --auto $PACKAGES --quiet --test --retry 2
112
if [ "$?" != "0" ]
112
if [ "$?" != "0" ]
113
then
113
then
114
	echo
114
	echo
115
	echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
115
	echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
116
	echo "An error occurs when downloading complementary packages"
116
	echo "An error occurs when downloading complementary packages"
117
	rpm_error
117
	rpm_error
118
	exit 1
118
	exit 1
119
fi
119
fi
120
# update with cached RPM
120
# update with cached RPM
121
urpmi --auto $PACKAGES 
121
urpmi --auto $PACKAGES 
122
# On supprime les paquetages inutiles
122
# On supprime les paquetages inutiles (pour chilli: nécessaire lors d'un mise à jour)
123
for rm_rpm in shorewall dhcp-server c-icap-server cyrus-sasl distcache-server avahi mandi radeontool coova-chilli python-coova-chilli
123
for rm_rpm in shorewall dhcp-server c-icap-server cyrus-sasl distcache-server avahi mandi radeontool libchilli0 lib64chilli0 python-coova-chilli
124
do
124
do
125
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
125
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
126
	echo -n "."
126
	echo -n "."
127
done
127
done
128
# On installe les RPMs spécifiques à la version
128
# On installe les RPMs spécifiques à la version
129
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
129
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
130
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
130
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
131
for rpmskip in coova-chilli freeradius 
131
for rpmskip in coova-chilli freeradius 
132
do
132
do
133
	echo -n "/^$rpmskip/" >> /etc/urpmi/skip.list
133
	echo -n "/^$rpmskip/" >> /etc/urpmi/skip.list
134
done
134
done
135
# Clean the RPM cache
135
# Clean the RPM cache
136
urpmi --clean
136
urpmi --clean
137
exit 0
137
exit 0
138
 
138
 
139
 
139