Subversion Repositories ALCASAR

Rev

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