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 1943 2016-06-13 22:20:13Z 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
1943 richard 15
KERNEL="kernel-server-4.4.13-1.mga5-1-1.mga5"
532 richard 16
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
1837 richard 17
PACKAGES="vim-enhanced freeradius freeradius-mysql freeradius-ldap 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 man"
1207 richard 18
 
497 richard 19
rpm_repository_sync ()
20
{
835 richard 21
cat <<EOF > /etc/urpmi/urpmi.cfg
22
{
23
downloader: wget
497 richard 24
}
835 richard 25
EOF
1003 richard 26
echo ${!MIRRORLIST}
27
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
28
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
835 richard 29
}
497 richard 30
 
532 richard 31
rpm_error ()
32
{
33
echo
1060 richard 34
if [ $Lang == "fr" ]
35
then	
36
	echo "Relancez l'installation ultérieurement."
37
	echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
38
else
39
	echo "Try an other install later."
40
	echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
41
fi
532 richard 42
}
1799 richard 43
 
1336 richard 44
# extract the current Mageia version and hardware architecture (i586 ou X64)
230 franck 45
fic=`cat /etc/product.id`
457 richard 46
old="$IFS"
47
IFS=","
230 franck 48
set $fic
49
for i in $*
50
do
1003 richard 51
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
52
	then 
53
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
54
	fi
230 franck 55
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
56
	then 
457 richard 57
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
230 franck 58
	fi
456 franck 59
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
60
	then 
61
		ARCH=`echo $i|cut -d"=" -f2`
62
	fi
230 franck 63
done
457 richard 64
IFS="$old"
1799 richard 65
 
532 richard 66
# We prefer wget than curl
1943 richard 67
urpmi --no-verify-rpm --auto rpms/$ARCH/wget*.rpm
1799 richard 68
 
1350 richard 69
# Set the RPM repository (if not already set)
1352 richard 70
ACTIVE_REPO=`cat /etc/urpmi/urpmi.cfg|grep "mageia.org"|wc -l`
1919 franck 71
#if [ "$ACTIVE_REPO" != "2" ]
72
#	then
1350 richard 73
	MIRROR_NBR=2
74
	#                       For Europeans 
75
	MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
76
	#                       For International install
77
	MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
78
	try_nb="0"; nb_repository="0"
79
	while [ "$nb_repository" != "2" ]
80
	do
81
		try_nb=`expr $try_nb + 1`
82
		MIRRORLIST="MIRRORLIST$try_nb"
83
		rpm_repository_sync 
84
		nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
85
		if [ "$nb_repository" != "2" ]
497 richard 86
		then
1350 richard 87
			if [ $Lang == "fr" ]
88
			then	
89
				echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
90
			else
91
				echo "An error occurs when synchronising the repositories N°$try_nb"
92
			fi
93
			if [ $(expr $try_nb) -eq $MIRROR_NBR ]
94
			then
95
				rpm_error
96
				exit 1
97
			fi
98
			if [ $Lang == "fr" ]
99
			then	
100
				echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
101
			else
102
				echo "Do you wan't to try a synchronisation with an other repository?"
103
			fi
104
			response=0
105
			PTN='^[oOnNyY]$'
106
			until [[ $(expr $response : $PTN) -gt 0 ]]
107
			do
108
				read response
109
			done
110
			if [ "$response" = "n" ] || [ "$response" = "N" ] 
111
			then
497 richard 112
			exit 1
1350 richard 113
			fi
497 richard 114
		fi
1350 richard 115
	done
1919 franck 116
#fi
1799 richard 117
 
118
# download the kernel used by ALCASAR and fix its version
119
if [ $Lang == "fr" ]
120
then	
121
	echo "Récupération du noyau Linux exploité par ALCASAR. Veuillez patienter ..."
122
else
123
	echo "Download the Linux kernel used by ALCASAR. Please wait ..."
124
fi
1943 richard 125
rm -f /etc/urpmi/skip.list
1799 richard 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
1938 richard 229
urpmi --no-verify --auto 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
1817 richard 234
# the ipt-netflow RPM add the kernel module ipt_NETFLOW (the modules dependance tree need to be updated)
235
/sbin/depmod -a
230 franck 236
exit 0