Subversion Repositories ALCASAR

Rev

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

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