Subversion Repositories ALCASAR

Rev

Details | Last modification | View Log

Rev Author Line No. Line
872 richard 1
#!/bin/bash
230 franck 2
# $Id: alcasar-urpmi.sh 1008 2013-01-05 23:13:33Z richard $
672 richard 3
 
4
# alcasar-urpmi.sh
1003 richard 5
# by 3abtux and Rexy
672 richard 6
# This script is distributed under the Gnu General Public License (GPL)
7
 
497 richard 8
# script de mise en place des dépots RPM 
672 richard 9
# configure the RPM repository
230 franck 10
 
1003 richard 11
VERSION="2"
525 richard 12
ARCH="i586" 
532 richard 13
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
1007 richard 14
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php iptables squid dansguardian postfix mariadb logwatch ntp awstats bind-utils openssh-server php-xml php-ldap php-mysql pam_ccreds rng-utils dnsmasq syslinux rsync cronie-anacron clamav pm-fallback-policy"
497 richard 15
 
16
rpm_repository_sync ()
17
{
835 richard 18
cat <<EOF > /etc/urpmi/urpmi.cfg
19
{
20
downloader: wget
497 richard 21
}
835 richard 22
EOF
1003 richard 23
echo ${!MIRRORLIST}
24
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
25
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
835 richard 26
}
497 richard 27
 
532 richard 28
rpm_error ()
29
{
30
echo
31
echo "Relancez l'installation ultérieurement."
32
echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
33
echo "Try an other install later."
34
echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
35
}
1003 richard 36
# extract the current Mandriva/Mageia version and hardware architecture (i586 ou X64)
230 franck 37
fic=`cat /etc/product.id`
1003 richard 38
unknown_os=0
457 richard 39
old="$IFS"
40
IFS=","
230 franck 41
set $fic
42
for i in $*
43
do
1003 richard 44
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
45
	then 
46
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
47
		unknown_os=`expr $unknown_os + 1`
48
	fi
230 franck 49
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
50
	then 
457 richard 51
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
1003 richard 52
		unknown_os=`expr $unknown_os + 1`
230 franck 53
	fi
456 franck 54
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
55
	then 
56
		ARCH=`echo $i|cut -d"=" -f2`
1003 richard 57
		unknown_os=`expr $unknown_os + 1`
456 franck 58
	fi
230 franck 59
done
457 richard 60
IFS="$old"
1003 richard 61
if [ $unknown_os != 3 ]
62
	then
63
	echo "le système installé n'est pas reconnu"
64
	echo "the installed operating system is unknown"
65
	exit 1
66
fi
1008 richard 67
if [ "$DISTRIBUTION" == "Mandriva" ]
1003 richard 68
then
69
	if [ $CURRENT_VERSION != "2009.0" ] && [ $CURRENT_VERSION != "2009.1" ] && [ $CURRENT_VERSION != "2010.0" ] && [ $CURRENT_VERSION != "2010.1" ] && [ $CURRENT_VERSION != "2010.2" ] 
70
	then
71
	echo "La migration automatique du système ne peut être réalisée."
72
	echo "Réalisez une mise à jour manuelle (cf. doc)."
73
	echo "The automatic system update can't perform."
74
	echo "Do a manual update (see doc)."
75
	exit 1	
76
	fi
77
fi
532 richard 78
# We prefer wget than curl
582 richard 79
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
497 richard 80
# Set the RPM repository
525 richard 81
MIRROR_NBR=2
1003 richard 82
#                       For Europeans 
83
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
525 richard 84
#                       For International install
1003 richard 85
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
497 richard 86
try_nb="0"; nb_repository="0"
1003 richard 87
while [ "$nb_repository" != "2" ]
497 richard 88
do
89
	try_nb=`expr $try_nb + 1`
90
	MIRRORLIST="MIRRORLIST$try_nb"
91
	rpm_repository_sync 
92
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
1003 richard 93
	if [ "$nb_repository" != "2" ]
497 richard 94
	then
95
		echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
96
		echo "An error occurs when synchronising the repositories N°$try_nb"
97
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
98
		then
532 richard 99
			rpm_error
497 richard 100
			exit 1
101
		fi
102
		echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
103
		echo "Do you wan't to try a synchronisation with an other repository?"
104
		response=0
105
		PTN='^[oOnNyY]$'
106
		until [[ $(expr $response : $PTN) -gt 0 ]]
107
		do
108
			read response
109
		done
110
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
111
		then
112
			exit 1
113
		fi
114
	fi
115
done
772 richard 116
# delete unused RPMs
117
echo "Cleaning the system : "
1007 richard 118
for rm_rpm in shorewall mandi radeontool
772 richard 119
do
120
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
121
	echo -n "."
122
done
123
echo
497 richard 124
# download RPM in cache 
460 richard 125
echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
126
echo "Updated RPM download. Please wait ..."
461 richard 127
echo "Il est temps d'aller prendre un café :-) "
128
echo "You should now take a Beer ;-) "
835 richard 129
urpmi --auto --auto-update --quiet --test --retry 2
460 richard 130
if [ "$?" != "0" ]
131
then
132
	echo
470 richard 133
	echo "Une erreur a été détectée lors de la récupération des paquetages."
799 richard 134
	echo "An error occurs when downloading RPMS"
532 richard 135
	rpm_error
470 richard 136
	exit 1
460 richard 137
fi
138
# update with cached RPM
139
urpmi --auto --auto-update
799 richard 140
if [ "$?" != "0" ]
141
then
142
	echo
143
	echo "Une erreur a été détectée lors de la mise à jour des paquetages."
144
	echo "An error occurs when updating packages"
145
	rpm_error
146
	exit 1
147
fi
772 richard 148
# Clean the RPM cache
149
urpmi --clean
532 richard 150
# Download of ALCASAR specifics RPM in cache (and test)
151
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
152
echo "Download of complementary packages. Please wait ..."
835 richard 153
urpmi --auto $PACKAGES --quiet --test --retry 2
532 richard 154
if [ "$?" != "0" ]
155
then
156
	echo
157
	echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
158
	echo "An error occurs when downloading complementary packages"
159
	rpm_error
160
	exit 1
161
fi
162
# update with cached RPM
163
urpmi --auto $PACKAGES 
799 richard 164
if [ "$?" != "0" ]
165
then
166
	echo
167
	echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
168
	echo "An error occurs when installing complementary packages"
169
	rpm_error
170
	exit 1
171
fi
1006 richard 172
# delete old alcasar RPMs and unused services
1007 richard 173
for rm_rpm in c-icap-server lib64chilli0 libchilli0 python-coova-chilli cyrus-sasl mageia-gfxboot-theme
532 richard 174
do
175
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
176
done
972 richard 177
# Save chilli launch script (erase with new rpm one)
1007 richard 178
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
972 richard 179
# Install home made RPMs
532 richard 180
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
972 richard 181
# restore chilli launch script
1007 richard 182
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
532 richard 183
# Clean the RPM cache
184
urpmi --clean
230 franck 185
exit 0
186