Subversion Repositories ALCASAR

Rev

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