Subversion Repositories ALCASAR

Rev

Rev 1531 | 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 1539 2014-12-22 14:44:49Z 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
 
1060 richard 11
Lang=`echo $LANG|cut -c 1-2`
1336 richard 12
VERSION="4"
525 richard 13
ARCH="i586" 
532 richard 14
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
1539 richard 15
PACKAGES="vim-enhanced freeradius freeradius-mysql freeradius-ldap freeradius-web apache apache-mod_ssl apache-mod_php dansguardian postfix mariadb ntp bind-utils openssh-server php-xml php-ldap php-mysql php-mysqli php-mbstring php-sockets php-cli php-curl php-pdo_sqlite php-json rng-utils dnsmasq rsync clamav perl-rrdtool perl-MailTools perl-Socket6 fail2ban gnupg ulogd dkms-ipt_NETFLOW iptables-NETFLOW pm-fallback-policy ipset cronie-anacron gammu usbutils locales-en usb_modeswitch tinyproxy vnstat php-gd"
1207 richard 16
 
497 richard 17
rpm_repository_sync ()
18
{
835 richard 19
cat <<EOF > /etc/urpmi/urpmi.cfg
20
{
21
downloader: wget
497 richard 22
}
835 richard 23
EOF
1003 richard 24
echo ${!MIRRORLIST}
25
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
26
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
835 richard 27
}
497 richard 28
 
532 richard 29
rpm_error ()
30
{
31
echo
1060 richard 32
if [ $Lang == "fr" ]
33
then	
34
	echo "Relancez l'installation ultérieurement."
35
	echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
36
else
37
	echo "Try an other install later."
38
	echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
39
fi
532 richard 40
}
1336 richard 41
# extract the current Mageia version and hardware architecture (i586 ou X64)
230 franck 42
fic=`cat /etc/product.id`
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
	fi
230 franck 52
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
53
	then 
457 richard 54
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
230 franck 55
	fi
456 franck 56
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
57
	then 
58
		ARCH=`echo $i|cut -d"=" -f2`
59
	fi
230 franck 60
done
457 richard 61
IFS="$old"
532 richard 62
# We prefer wget than curl
582 richard 63
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
1350 richard 64
# Set the RPM repository (if not already set)
1352 richard 65
ACTIVE_REPO=`cat /etc/urpmi/urpmi.cfg|grep "mageia.org"|wc -l`
1350 richard 66
if [ "$ACTIVE_REPO" != "2" ]
497 richard 67
	then
1350 richard 68
	MIRROR_NBR=2
69
	#                       For Europeans 
70
	MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
71
	#                       For International install
72
	MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
73
	try_nb="0"; nb_repository="0"
74
	while [ "$nb_repository" != "2" ]
75
	do
76
		try_nb=`expr $try_nb + 1`
77
		MIRRORLIST="MIRRORLIST$try_nb"
78
		rpm_repository_sync 
79
		nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
80
		if [ "$nb_repository" != "2" ]
497 richard 81
		then
1350 richard 82
			if [ $Lang == "fr" ]
83
			then	
84
				echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
85
			else
86
				echo "An error occurs when synchronising the repositories N°$try_nb"
87
			fi
88
			if [ $(expr $try_nb) -eq $MIRROR_NBR ]
89
			then
90
				rpm_error
91
				exit 1
92
			fi
93
			if [ $Lang == "fr" ]
94
			then	
95
				echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
96
			else
97
				echo "Do you wan't to try a synchronisation with an other repository?"
98
			fi
99
			response=0
100
			PTN='^[oOnNyY]$'
101
			until [[ $(expr $response : $PTN) -gt 0 ]]
102
			do
103
				read response
104
			done
105
			if [ "$response" = "n" ] || [ "$response" = "N" ] 
106
			then
497 richard 107
			exit 1
1350 richard 108
			fi
497 richard 109
		fi
1350 richard 110
	done
111
fi
1207 richard 112
# download updated RPM in cache 
113
if [ $Lang == "fr" ]
114
then	
1060 richard 115
	echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
116
	echo "Il est temps d'aller prendre un café (ou une bonne bière) ;-)"
117
else
118
	echo "Updated RPM download. Please wait ..."
119
	echo "You should now take a coffe (or a good beer) ;-)"
120
fi
835 richard 121
urpmi --auto --auto-update --quiet --test --retry 2
460 richard 122
if [ "$?" != "0" ]
123
then
124
	echo
1060 richard 125
	if [ $Lang == "fr" ]
126
	then	
127
		echo "Une erreur a été détectée lors de la récupération des paquetages."
128
	else
129
		echo "An error occurs when downloading RPMS"
130
	fi
532 richard 131
	rpm_error
470 richard 132
	exit 1
460 richard 133
fi
134
# update with cached RPM
135
urpmi --auto --auto-update
799 richard 136
if [ "$?" != "0" ]
137
then
138
	echo
1060 richard 139
	if [ $Lang == "fr" ]
140
	then	
141
		echo "Une erreur a été détectée lors de la mise à jour des paquetages."
142
	else
143
		echo "An error occurs when updating packages"
144
	fi
799 richard 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)
1060 richard 151
if [ $Lang == "fr" ]
152
then	
153
	echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
154
else
155
	echo "Download of complementary packages. Please wait ..."
156
fi
835 richard 157
urpmi --auto $PACKAGES --quiet --test --retry 2
532 richard 158
if [ "$?" != "0" ]
159
then
160
	echo
1060 richard 161
	if [ $Lang == "fr" ]
162
	then	
163
		echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
164
	else
165
		echo "An error occurs when downloading complementary packages"
166
	fi
532 richard 167
	rpm_error
168
	exit 1
169
fi
170
# update with cached RPM
171
urpmi --auto $PACKAGES 
799 richard 172
if [ "$?" != "0" ]
173
then
174
	echo
1060 richard 175
	if [ $Lang == "fr" ]
176
	then	
177
		echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
178
	else
179
		echo "An error occurs when installing complementary packages"
180
	fi
799 richard 181
	rpm_error
182
	exit 1
183
fi
1348 richard 184
# delete unused RPMs
185
if [ $Lang == "fr" ]
186
then
187
	echo "Cleaning the system : "
188
else
189
	echo "Nettoyage du système : "
190
fi
1509 richard 191
for rm_rpm in shorewall mandi radeontool avahi mageia-gfxboot-theme privoxy cpupower squid
1207 richard 192
do
532 richard 193
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
1348 richard 194
	echo -n "."
532 richard 195
done
1207 richard 196
 
972 richard 197
# Save chilli launch script (erase with new rpm one)
1007 richard 198
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
972 richard 199
# Install home made RPMs
532 richard 200
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
972 richard 201
# restore chilli launch script
1007 richard 202
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
532 richard 203
# Clean the RPM cache
204
urpmi --clean
230 franck 205
exit 0