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 1159 2013-07-17 09:25:15Z crox53 $
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
 
1060 richard 11
Lang=`echo $LANG|cut -c 1-2`
1003 richard 12
VERSION="2"
525 richard 13
ARCH="i586" 
532 richard 14
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
1159 crox53 15
PACKAGES="sudo freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php iptables squid dansguardian postfix mariadb logwatch ntp bind-utils openssh-server php-xml php-ldap php-mysql pam_ccreds rng-utils dnsmasq syslinux rsync cronie-anacron clamav pm-fallback-policy php-mbstring perl-rrdtool perl-MailTools perl-Socket6 php-sockets kernel-desktop-3.4.45-1.mga2-1-1.mga2"
497 richard 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
1060 richard 31
if [ $Lang == "fr" ]
32
then	
33
	echo "Relancez l'installation ultérieurement."
34
	echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
35
else
36
	echo "Try an other install later."
37
	echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
38
fi
532 richard 39
}
1003 richard 40
# extract the current Mandriva/Mageia version and hardware architecture (i586 ou X64)
230 franck 41
fic=`cat /etc/product.id`
1003 richard 42
unknown_os=0
457 richard 43
old="$IFS"
44
IFS=","
230 franck 45
set $fic
46
for i in $*
47
do
1003 richard 48
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
49
	then 
50
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
51
		unknown_os=`expr $unknown_os + 1`
52
	fi
230 franck 53
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
54
	then 
457 richard 55
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
1003 richard 56
		unknown_os=`expr $unknown_os + 1`
230 franck 57
	fi
456 franck 58
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
59
	then 
60
		ARCH=`echo $i|cut -d"=" -f2`
1003 richard 61
		unknown_os=`expr $unknown_os + 1`
456 franck 62
	fi
230 franck 63
done
457 richard 64
IFS="$old"
1012 richard 65
if [[ ( $unknown_os != 3 || "$DISTRIBUTION" != "Mageia" ) && ( "$CURRENT_VERSION" != "2" ) ]]
1060 richard 66
then
67
	if [ $Lang == "fr" ]
68
	then	
69
		echo "La migration automatique d'ALCASAR ne peut pas être réalisée."
1062 richard 70
		echo "Le système d'exploitation doit être remplacé"
1060 richard 71
	else
72
		echo "The automatic update of ALCASAR can't be performed."
73
		echo "The OS must be replaced"
74
	fi
75
	if [ -e /tmp/alcasar-conf.tar.gz ]
1003 richard 76
	then
1012 richard 77
		echo
1060 richard 78
		if [ $Lang == "fr" ]
79
		then	
80
			echo "1 - Récupérez le fichier de configuration actuel (/tmp/alcasar-conf.tar.gz)."
81
			echo "2 - Installez Linux-Mageia2 (cf. doc d'installation)"
1062 richard 82
			echo "3 - copiez le fichier 'alcasar-conf.tar.gz' dans le répertoire '/tmp' avant de lancer l'installation d'ALCASAR"
1060 richard 83
		else
84
			echo "1 - Retrieve the configuration file (/tmp/alcasar-conf.tar.gz)"
85
			echo "2 - Install Linux-Mageia2 (cf. installation doc)"
86
			echo "3 - Copy the file 'alcasar-conf.tar.gz' in the folder '/tmp' before launching the installation of ALCASAR"
87
		fi
1012 richard 88
	fi
1003 richard 89
	exit 1
90
fi
532 richard 91
# We prefer wget than curl
582 richard 92
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
497 richard 93
# Set the RPM repository
525 richard 94
MIRROR_NBR=2
1003 richard 95
#                       For Europeans 
96
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
525 richard 97
#                       For International install
1003 richard 98
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
497 richard 99
try_nb="0"; nb_repository="0"
1003 richard 100
while [ "$nb_repository" != "2" ]
497 richard 101
do
102
	try_nb=`expr $try_nb + 1`
103
	MIRRORLIST="MIRRORLIST$try_nb"
104
	rpm_repository_sync 
105
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
1003 richard 106
	if [ "$nb_repository" != "2" ]
497 richard 107
	then
1060 richard 108
		if [ $Lang == "fr" ]
109
		then	
110
			echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
111
		else
112
			echo "An error occurs when synchronising the repositories N°$try_nb"
113
		fi
497 richard 114
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
115
		then
532 richard 116
			rpm_error
497 richard 117
			exit 1
118
		fi
1060 richard 119
		if [ $Lang == "fr" ]
120
		then	
121
			echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
122
		else
123
			echo "Do you wan't to try a synchronisation with an other repository?"
124
		fi
497 richard 125
		response=0
126
		PTN='^[oOnNyY]$'
127
		until [[ $(expr $response : $PTN) -gt 0 ]]
128
		do
129
			read response
130
		done
131
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
132
		then
133
			exit 1
134
		fi
135
	fi
136
done
772 richard 137
# delete unused RPMs
138
echo "Cleaning the system : "
1076 richard 139
for rm_rpm in shorewall mandi radeontool avahi
772 richard 140
do
141
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
142
	echo -n "."
143
done
144
echo
497 richard 145
# download RPM in cache 
1060 richard 146
if [ $Lang == "fr" ]
147
then	
148
	echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
149
	echo "Il est temps d'aller prendre un café (ou une bonne bière) ;-)"
150
else
151
	echo "Updated RPM download. Please wait ..."
152
	echo "You should now take a coffe (or a good beer) ;-)"
153
fi
835 richard 154
urpmi --auto --auto-update --quiet --test --retry 2
460 richard 155
if [ "$?" != "0" ]
156
then
157
	echo
1060 richard 158
	if [ $Lang == "fr" ]
159
	then	
160
		echo "Une erreur a été détectée lors de la récupération des paquetages."
161
	else
162
		echo "An error occurs when downloading RPMS"
163
	fi
532 richard 164
	rpm_error
470 richard 165
	exit 1
460 richard 166
fi
167
# update with cached RPM
168
urpmi --auto --auto-update
799 richard 169
if [ "$?" != "0" ]
170
then
171
	echo
1060 richard 172
	if [ $Lang == "fr" ]
173
	then	
174
		echo "Une erreur a été détectée lors de la mise à jour des paquetages."
175
	else
176
		echo "An error occurs when updating packages"
177
	fi
799 richard 178
	rpm_error
179
	exit 1
180
fi
772 richard 181
# Clean the RPM cache
182
urpmi --clean
532 richard 183
# Download of ALCASAR specifics RPM in cache (and test)
1060 richard 184
if [ $Lang == "fr" ]
185
then	
186
	echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
187
else
188
	echo "Download of complementary packages. Please wait ..."
189
fi
835 richard 190
urpmi --auto $PACKAGES --quiet --test --retry 2
532 richard 191
if [ "$?" != "0" ]
192
then
193
	echo
1060 richard 194
	if [ $Lang == "fr" ]
195
	then	
196
		echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
197
	else
198
		echo "An error occurs when downloading complementary packages"
199
	fi
532 richard 200
	rpm_error
201
	exit 1
202
fi
203
# update with cached RPM
204
urpmi --auto $PACKAGES 
799 richard 205
if [ "$?" != "0" ]
206
then
207
	echo
1060 richard 208
	if [ $Lang == "fr" ]
209
	then	
210
		echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
211
	else
212
		echo "An error occurs when installing complementary packages"
213
	fi
799 richard 214
	rpm_error
215
	exit 1
216
fi
1006 richard 217
# delete old alcasar RPMs and unused services
1007 richard 218
for rm_rpm in c-icap-server lib64chilli0 libchilli0 python-coova-chilli cyrus-sasl mageia-gfxboot-theme
532 richard 219
do
220
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
221
done
972 richard 222
# Save chilli launch script (erase with new rpm one)
1007 richard 223
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
972 richard 224
# Install home made RPMs
532 richard 225
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
972 richard 226
# restore chilli launch script
1007 richard 227
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
532 richard 228
# Clean the RPM cache
229
urpmi --clean
1159 crox53 230
 
231
#Keep only kernel-desktop-3.4.45-1.mga2-1-1.mga2 version, and remove all others
232
kernelVersion=$(rpm -qa | grep "kernel-desktop")
233
for i in $kernelVersion
234
do
235
	if [ ! $i = "kernel-desktop-3.4.45-1.mga2-1-1.mga2" ];then
236
		urpme $i
237
	fi
238
done
239
 
240
#Fix the kernel version to : kernel-desktop-3.4.45-1.mga2-1-1.mga2
241
	echo "/^kernel-desktop/" > /etc/urpmi/skip.list 
242
 
243
#update tht kernel modules list
244
depmod -a
245
 
230 franck 246
exit 0