Subversion Repositories ALCASAR

Rev

Rev 2054 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2054 Rev 2056
1
#!/bin/bash
1
#!/bin/bash
2
# $Id: alcasar-urpmi.sh 2054 2016-10-26 12:32:17Z raphael.pion $
2
# $Id: alcasar-urpmi.sh 2056 2016-10-29 10:12:33Z richard $
3
 
3
 
4
# alcasar-urpmi.sh
4
# alcasar-urpmi.sh
5
# by 3abtux and Rexy
5
# by 3abtux and Rexy
6
# This script is distributed under the Gnu General Public License (GPL)
6
# This script is distributed under the Gnu General Public License (GPL)
7
 
7
 
8
# script de mise en place des dépots RPM 
8
# script de mise en place des dépots RPM 
9
# configure the RPM repository
9
# configure the RPM repository
10
 
10
 
11
Lang=`echo $LANG|cut -c 1-2`
11
Lang=`echo $LANG|cut -c 1-2`
12
VERSION="5"
12
VERSION="5"
13
ARCH="i586" 
13
ARCH="i586" 
14
# The kernel version we compile netflow for
14
# The kernel version we compile netflow for
15
KERNEL="kernel-server-4.4.13-1.mga5-1-1.mga5"
15
KERNEL="kernel-server-4.4.26-1.mga5-1-1.mga5"
16
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
16
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
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-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 dos2unix p7zip"
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-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 dos2unix p7zip"
18
 
18
 
19
rpm_repository_sync ()
19
rpm_repository_sync ()
20
{
20
{
21
cat <<EOF > /etc/urpmi/urpmi.cfg
21
cat <<EOF > /etc/urpmi/urpmi.cfg
22
{
22
{
23
downloader: wget
23
downloader: wget
24
}
24
}
25
EOF
25
EOF
26
echo ${!MIRRORLIST}
26
echo ${!MIRRORLIST}
27
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
27
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
28
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
28
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
29
urpmi.addmedia nonfree --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/nonfree/release
29
urpmi.addmedia nonfree --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/nonfree/release
30
urpmi.addmedia nonfree-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/nonfree/updates
30
urpmi.addmedia nonfree-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/nonfree/updates
31
}
31
}
32
 
32
 
33
rpm_error ()
33
rpm_error ()
34
{
34
{
35
echo
35
echo
36
if [ $Lang == "fr" ]
36
if [ $Lang == "fr" ]
37
then	
37
then	
38
	echo "Relancez l'installation ultérieurement."
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'"
39
	echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
40
else
40
else
41
	echo "Try an other install later."
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'"
42
	echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
43
fi
43
fi
44
}
44
}
45
 
45
 
46
# extract the current Mageia version and hardware architecture (i586 ou X64)
46
# extract the current Mageia version and hardware architecture (i586 ou X64)
47
fic=`cat /etc/product.id`
47
fic=`cat /etc/product.id`
48
old="$IFS"
48
old="$IFS"
49
IFS=","
49
IFS=","
50
set $fic
50
set $fic
51
for i in $*
51
for i in $*
52
do
52
do
53
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
53
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
54
	then 
54
	then 
55
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
55
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
56
	fi
56
	fi
57
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
57
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
58
	then 
58
	then 
59
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
59
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
60
	fi
60
	fi
61
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
61
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
62
	then 
62
	then 
63
		ARCH=`echo $i|cut -d"=" -f2`
63
		ARCH=`echo $i|cut -d"=" -f2`
64
	fi
64
	fi
65
done
65
done
66
IFS="$old"
66
IFS="$old"
67
 
67
 
68
# We prefer wget than curl
68
# We prefer wget than curl
69
urpmi --no-verify-rpm --auto rpms/$ARCH/wget*.rpm
69
urpmi --no-verify-rpm --auto rpms/$ARCH/wget*.rpm
70
 
70
 
71
# Set the RPM repository (if not already set)
71
# Set the RPM repository (if not already set)
72
ACTIVE_REPO=`cat /etc/urpmi/urpmi.cfg|grep "mageia.org"|wc -l`
72
ACTIVE_REPO=`cat /etc/urpmi/urpmi.cfg|grep "mageia.org"|wc -l`
73
#if [ "$ACTIVE_REPO" != "2" ]
-
 
74
#	then
-
 
75
	MIRROR_NBR=2
73
MIRROR_NBR=2
76
	#                       For Europeans 
74
#                       For Europeans 
77
	MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
75
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
78
	#                       For International install
76
#                       For International install
79
	MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
77
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
80
	try_nb="0"; nb_repository="0"
78
try_nb="0"; nb_repository="0"
81
	while [ "$nb_repository" != "4" ]
79
while [ "$nb_repository" != "4" ]
82
	do
80
do
83
		try_nb=`expr $try_nb + 1`
81
	try_nb=`expr $try_nb + 1`
84
		MIRRORLIST="MIRRORLIST$try_nb"
82
	MIRRORLIST="MIRRORLIST$try_nb"
85
		rpm_repository_sync 
83
	rpm_repository_sync 
86
		nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
84
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
87
		if [ "$nb_repository" != "4" ]
85
	if [ "$nb_repository" != "4" ]
-
 
86
	then
-
 
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" ] 
88
		then
111
		then
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
-
 
114
			exit 1
112
			exit 1
115
			fi
-
 
116
		fi
113
		fi
117
	done
114
	fi
118
#fi
115
done
119
 
116
 
120
# download the kernel used by ALCASAR and fix its version
117
# download the kernel used by ALCASAR and fix its version
121
if [ $Lang == "fr" ]
118
if [ $Lang == "fr" ]
122
then	
119
then	
123
	echo "Récupération du noyau Linux exploité par ALCASAR. Veuillez patienter ..."
120
	echo "Récupération du noyau Linux exploité par ALCASAR. Veuillez patienter ..."
124
else
121
else
125
	echo "Download the Linux kernel used by ALCASAR. Please wait ..."
122
	echo "Download the Linux kernel used by ALCASAR. Please wait ..."
126
fi
123
fi
127
rm -f /etc/urpmi/skip.list
124
rm -f /etc/urpmi/skip.list
128
urpmi --auto --quiet $KERNEL
125
urpmi --auto --quiet $KERNEL
129
echo "/^kernel/" > /etc/urpmi/skip.list
126
echo "/^kernel/" > /etc/urpmi/skip.list
130
 
127
 
131
# download updated RPM in cache 
128
# download updated RPM in cache 
132
if [ $Lang == "fr" ]
129
if [ $Lang == "fr" ]
133
then	
130
then	
134
	echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
131
	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) ;-)"
132
	echo "Il est temps d'aller prendre un café (ou une bonne bière) ;-)"
136
else
133
else
137
	echo "Updated RPM download. Please wait ..."
134
	echo "Updated RPM download. Please wait ..."
138
	echo "You should now take a coffe (or a good beer) ;-)"
135
	echo "You should now take a coffe (or a good beer) ;-)"
139
fi
136
fi
140
urpmi --auto --auto-update --quiet --test --retry 2
137
urpmi --auto --auto-update --quiet --test --retry 2
141
if [ "$?" != "0" ]
138
if [ "$?" != "0" ]
142
then
139
then
143
	echo
140
	echo
144
	if [ $Lang == "fr" ]
141
	if [ $Lang == "fr" ]
145
	then	
142
	then	
146
		echo "Une erreur a été détectée lors de la récupération des paquetages."
143
		echo "Une erreur a été détectée lors de la récupération des paquetages."
147
	else
144
	else
148
		echo "An error occurs when downloading RPMS"
145
		echo "An error occurs when downloading RPMS"
149
	fi
146
	fi
150
	rpm_error
147
	rpm_error
151
	exit 1
148
	exit 1
152
fi
149
fi
153
 
150
 
154
# update with cached RPM
151
# update with cached RPM
155
urpmi --auto --auto-update
152
urpmi --auto --auto-update
156
if [ "$?" != "0" ]
153
if [ "$?" != "0" ]
157
then
154
then
158
	echo
155
	echo
159
	if [ $Lang == "fr" ]
156
	if [ $Lang == "fr" ]
160
	then	
157
	then	
161
		echo "Une erreur a été détectée lors de la mise à jour des paquetages."
158
		echo "Une erreur a été détectée lors de la mise à jour des paquetages."
162
	else
159
	else
163
		echo "An error occurs when updating packages"
160
		echo "An error occurs when updating packages"
164
	fi
161
	fi
165
	rpm_error
162
	rpm_error
166
	exit 1
163
	exit 1
167
fi
164
fi
168
# Clean the RPM cache
165
# Clean the RPM cache
169
urpmi --clean
166
urpmi --clean
170
 
167
 
171
# Download of ALCASAR specifics RPM in cache (and test)
168
# Download of ALCASAR specifics RPM in cache (and test)
172
if [ $Lang == "fr" ]
169
if [ $Lang == "fr" ]
173
then	
170
then	
174
	echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
171
	echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
175
else
172
else
176
	echo "Download of complementary packages. Please wait ..."
173
	echo "Download of complementary packages. Please wait ..."
177
fi
174
fi
178
urpmi --auto $PACKAGES --quiet --test --retry 2
175
urpmi --auto $PACKAGES --quiet --test --retry 2
179
if [ "$?" != "0" ]
176
if [ "$?" != "0" ]
180
then
177
then
181
	echo
178
	echo
182
	if [ $Lang == "fr" ]
179
	if [ $Lang == "fr" ]
183
	then	
180
	then	
184
		echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
181
		echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
185
	else
182
	else
186
		echo "An error occurs when downloading complementary packages"
183
		echo "An error occurs when downloading complementary packages"
187
	fi
184
	fi
188
	rpm_error
185
	rpm_error
189
	exit 1
186
	exit 1
190
fi
187
fi
191
 
188
 
192
# update with cached RPM
189
# update with cached RPM
193
urpmi --auto $PACKAGES 
190
urpmi --auto $PACKAGES 
194
if [ "$?" != "0" ]
191
if [ "$?" != "0" ]
195
then
192
then
196
	echo
193
	echo
197
	if [ $Lang == "fr" ]
194
	if [ $Lang == "fr" ]
198
	then	
195
	then	
199
		echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
196
		echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
200
	else
197
	else
201
		echo "An error occurs when installing complementary packages"
198
		echo "An error occurs when installing complementary packages"
202
	fi
199
	fi
203
	rpm_error
200
	rpm_error
204
	exit 1
201
	exit 1
205
fi
202
fi
206
 
203
 
207
# Keep only the kernel version we compil netflow with, and remove all others
204
# Keep only the kernel version we compil netflow with, and remove all others
208
kernelVersion=$(rpm -qa | grep -e ^kernel-server -e ^kernel-desktop)
205
kernelVersion=$(rpm -qa | grep -e ^kernel-server -e ^kernel-desktop)
209
for i in $kernelVersion
206
for i in $kernelVersion
210
do
207
do
211
	if [ $i != $KERNEL ];then
208
	if [ $i != $KERNEL ];then
212
		urpme --auto $i
209
		urpme --auto $i
213
	fi
210
	fi
214
done
211
done
215
# delete unused RPMs
212
# delete unused RPMs
216
if [ $Lang == "fr" ]
213
if [ $Lang == "fr" ]
217
then
214
then
218
	echo "Cleaning the system : "
215
	echo "Cleaning the system : "
219
else
216
else
220
	echo "Nettoyage du système : "
217
	echo "Nettoyage du système : "
221
fi
218
fi
222
for rm_rpm in shorewall mandi avahi mageia-gfxboot-theme privoxy cpupower squid gamin
219
for rm_rpm in shorewall mandi avahi mageia-gfxboot-theme privoxy cpupower squid gamin
223
do
220
do
224
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
221
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
225
	echo -n "."
222
	echo -n "."
226
done
223
done
227
 
224
 
228
# Save chilli launch script (erase with new rpm one)
225
# Save chilli launch script (erase with new rpm one)
229
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
226
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
230
# Install home made RPMs
227
# Install home made RPMs
231
urpmi --no-verify --auto rpms/$ARCH/*.rpm
228
urpmi --no-verify --auto rpms/$ARCH/*.rpm
232
# restore chilli launch script
229
# restore chilli launch script
233
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
230
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
234
# Clean the RPM cache
231
# Clean the RPM cache
235
urpmi --clean
232
urpmi --clean
236
# the ipt-netflow RPM add the kernel module ipt_NETFLOW (the modules dependance tree need to be updated)
233
# the ipt-netflow RPM add the kernel module ipt_NETFLOW (the modules dependance tree need to be updated)
237
/sbin/depmod -a
234
/sbin/depmod -a
238
exit 0
235
exit 0
239
 
236