Subversion Repositories ALCASAR

Rev

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

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