Subversion Repositories ALCASAR

Rev

Rev 1033 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
872 richard 1
#!/bin/bash
230 franck 2
# $Id: alcasar-urpmi.sh 1056 2013-03-26 21:46:36Z stephane $
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 ******
1033 richard 14
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 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"
1012 richard 61
if [[ ( $unknown_os != 3 || "$DISTRIBUTION" != "Mageia" ) && ( "$CURRENT_VERSION" != "2" ) ]]
1003 richard 62
	then
1012 richard 63
	echo "le système Linux installé n'est pas conforme. Installez Mageia2 (cf documentation d'installation)"
64
	echo "the installed Linux operating system isn't conform. Install Mageia2 (see installation documentation)"
65
	if [ -e /tmp/alcasar-conf.tar.gz ]
66
		then
67
		echo
68
		echo "La migration automatique du système ne peut pas être réalisée."
69
		echo "Récupérez le fichier /tmp/alcasar-conf.tar.gz et faites une mise à jour manuelle (cf. readme.txt)."
70
		echo "The automatic system update can't perform."
71
		echo "Retrieve the file /tmp/alcasar-conf.tar.gz and do a manual update (see readme.txt)."
72
	fi
1003 richard 73
	exit 1
74
fi
532 richard 75
# We prefer wget than curl
582 richard 76
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
497 richard 77
# Set the RPM repository
525 richard 78
MIRROR_NBR=2
1003 richard 79
#                       For Europeans 
80
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
525 richard 81
#                       For International install
1003 richard 82
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
497 richard 83
try_nb="0"; nb_repository="0"
1003 richard 84
while [ "$nb_repository" != "2" ]
497 richard 85
do
86
	try_nb=`expr $try_nb + 1`
87
	MIRRORLIST="MIRRORLIST$try_nb"
88
	rpm_repository_sync 
89
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
1003 richard 90
	if [ "$nb_repository" != "2" ]
497 richard 91
	then
92
		echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
93
		echo "An error occurs when synchronising the repositories N°$try_nb"
94
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
95
		then
532 richard 96
			rpm_error
497 richard 97
			exit 1
98
		fi
99
		echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
100
		echo "Do you wan't to try a synchronisation with an other repository?"
101
		response=0
102
		PTN='^[oOnNyY]$'
103
		until [[ $(expr $response : $PTN) -gt 0 ]]
104
		do
105
			read response
106
		done
107
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
108
		then
109
			exit 1
110
		fi
111
	fi
112
done
772 richard 113
# delete unused RPMs
114
echo "Cleaning the system : "
1007 richard 115
for rm_rpm in shorewall mandi radeontool
772 richard 116
do
117
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
118
	echo -n "."
119
done
120
echo
497 richard 121
# download RPM in cache 
460 richard 122
echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
123
echo "Updated RPM download. Please wait ..."
461 richard 124
echo "Il est temps d'aller prendre un café :-) "
125
echo "You should now take a Beer ;-) "
835 richard 126
urpmi --auto --auto-update --quiet --test --retry 2
460 richard 127
if [ "$?" != "0" ]
128
then
129
	echo
470 richard 130
	echo "Une erreur a été détectée lors de la récupération des paquetages."
799 richard 131
	echo "An error occurs when downloading RPMS"
532 richard 132
	rpm_error
470 richard 133
	exit 1
460 richard 134
fi
135
# update with cached RPM
136
urpmi --auto --auto-update
799 richard 137
if [ "$?" != "0" ]
138
then
139
	echo
140
	echo "Une erreur a été détectée lors de la mise à jour des paquetages."
141
	echo "An error occurs when updating packages"
142
	rpm_error
143
	exit 1
144
fi
772 richard 145
# Clean the RPM cache
146
urpmi --clean
532 richard 147
# Download of ALCASAR specifics RPM in cache (and test)
148
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
149
echo "Download of complementary packages. Please wait ..."
835 richard 150
urpmi --auto $PACKAGES --quiet --test --retry 2
532 richard 151
if [ "$?" != "0" ]
152
then
153
	echo
154
	echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
155
	echo "An error occurs when downloading complementary packages"
156
	rpm_error
157
	exit 1
158
fi
159
# update with cached RPM
160
urpmi --auto $PACKAGES 
799 richard 161
if [ "$?" != "0" ]
162
then
163
	echo
164
	echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
165
	echo "An error occurs when installing complementary packages"
166
	rpm_error
167
	exit 1
168
fi
1006 richard 169
# delete old alcasar RPMs and unused services
1007 richard 170
for rm_rpm in c-icap-server lib64chilli0 libchilli0 python-coova-chilli cyrus-sasl mageia-gfxboot-theme
532 richard 171
do
172
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
173
done
972 richard 174
# Save chilli launch script (erase with new rpm one)
1007 richard 175
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
972 richard 176
# Install home made RPMs
532 richard 177
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
972 richard 178
# restore chilli launch script
1007 richard 179
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
532 richard 180
# Clean the RPM cache
181
urpmi --clean
230 franck 182
exit 0
183