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 1801 2016-02-28 21:04:10Z 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
1801 richard 206
kernelVersion=$(rpm -qa | grep -e ^kernel-server -e ^kernel-desktop)
1799 richard 207
for i in $kernelVersion
208
do
1801 richard 209
	if [ $i != $KERNEL ];then
1799 richard 210
		urpme --auto $i
211
	fi
212
done
1348 richard 213
# delete unused RPMs
214
if [ $Lang == "fr" ]
215
then
216
	echo "Cleaning the system : "
217
else
218
	echo "Nettoyage du système : "
219
fi
1799 richard 220
for rm_rpm in shorewall mandi avahi mageia-gfxboot-theme privoxy cpupower squid gamin
1207 richard 221
do
532 richard 222
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
1348 richard 223
	echo -n "."
532 richard 224
done
1207 richard 225
 
972 richard 226
# Save chilli launch script (erase with new rpm one)
1007 richard 227
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
972 richard 228
# Install home made RPMs
532 richard 229
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
972 richard 230
# restore chilli launch script
1007 richard 231
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
532 richard 232
# Clean the RPM cache
233
urpmi --clean
230 franck 234
exit 0