Subversion Repositories ALCASAR

Rev

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

Rev 1159 Rev 1164
1
#!/bin/bash
1
#!/bin/bash
2
# $Id: alcasar-urpmi.sh 1159 2013-07-17 09:25:15Z crox53 $
2
# $Id: alcasar-urpmi.sh 1164 2013-08-16 08:39:19Z crox53 $
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="2"
12
VERSION="2"
13
ARCH="i586" 
13
ARCH="i586" 
14
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
14
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
15
PACKAGES="sudo freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php iptables squid dansguardian postfix mariadb logwatch ntp bind-utils openssh-server php-xml php-ldap php-mysql pam_ccreds rng-utils dnsmasq syslinux rsync cronie-anacron clamav pm-fallback-policy php-mbstring perl-rrdtool perl-MailTools perl-Socket6 php-sockets kernel-desktop-3.4.45-1.mga2-1-1.mga2"
15
PACKAGES="sudo freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php iptables squid dansguardian postfix mariadb logwatch ntp bind-utils openssh-server php-xml php-ldap php-mysql pam_ccreds rng-utils dnsmasq syslinux rsync cronie-anacron clamav pm-fallback-policy php-mbstring perl-rrdtool perl-MailTools perl-Socket6 php-sockets kernel-desktop-3.4.45-1.mga2-1-1.mga2 fail2ban"
16
rpm_repository_sync ()
16
rpm_repository_sync ()
17
{
17
{
18
cat <<EOF > /etc/urpmi/urpmi.cfg
18
cat <<EOF > /etc/urpmi/urpmi.cfg
19
{
19
{
20
downloader: wget
20
downloader: wget
21
}
21
}
22
EOF
22
EOF
23
echo ${!MIRRORLIST}
23
echo ${!MIRRORLIST}
24
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
24
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
25
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
25
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
26
}
26
}
27
 
27
 
28
rpm_error ()
28
rpm_error ()
29
{
29
{
30
echo
30
echo
31
if [ $Lang == "fr" ]
31
if [ $Lang == "fr" ]
32
then	
32
then	
33
	echo "Relancez l'installation ultérieurement."
33
	echo "Relancez l'installation ultérieurement."
34
	echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
34
	echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
35
else
35
else
36
	echo "Try an other install later."
36
	echo "Try an other install later."
37
	echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
37
	echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
38
fi
38
fi
39
}
39
}
40
# extract the current Mandriva/Mageia version and hardware architecture (i586 ou X64)
40
# extract the current Mandriva/Mageia version and hardware architecture (i586 ou X64)
41
fic=`cat /etc/product.id`
41
fic=`cat /etc/product.id`
42
unknown_os=0
42
unknown_os=0
43
old="$IFS"
43
old="$IFS"
44
IFS=","
44
IFS=","
45
set $fic
45
set $fic
46
for i in $*
46
for i in $*
47
do
47
do
48
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
48
	if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
49
	then 
49
	then 
50
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
50
		DISTRIBUTION=`echo $i|cut -d"=" -f2`
51
		unknown_os=`expr $unknown_os + 1`
51
		unknown_os=`expr $unknown_os + 1`
52
	fi
52
	fi
53
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
53
	if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
54
	then 
54
	then 
55
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
55
		CURRENT_VERSION=`echo $i|cut -d"=" -f2`
56
		unknown_os=`expr $unknown_os + 1`
56
		unknown_os=`expr $unknown_os + 1`
57
	fi
57
	fi
58
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
58
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
59
	then 
59
	then 
60
		ARCH=`echo $i|cut -d"=" -f2`
60
		ARCH=`echo $i|cut -d"=" -f2`
61
		unknown_os=`expr $unknown_os + 1`
61
		unknown_os=`expr $unknown_os + 1`
62
	fi
62
	fi
63
done
63
done
64
IFS="$old"
64
IFS="$old"
65
if [[ ( $unknown_os != 3 || "$DISTRIBUTION" != "Mageia" ) && ( "$CURRENT_VERSION" != "2" ) ]]
65
if [[ ( $unknown_os != 3 || "$DISTRIBUTION" != "Mageia" ) && ( "$CURRENT_VERSION" != "2" ) ]]
66
then
66
then
67
	if [ $Lang == "fr" ]
67
	if [ $Lang == "fr" ]
68
	then	
68
	then	
69
		echo "La migration automatique d'ALCASAR ne peut pas être réalisée."
69
		echo "La migration automatique d'ALCASAR ne peut pas être réalisée."
70
		echo "Le système d'exploitation doit être remplacé"
70
		echo "Le système d'exploitation doit être remplacé"
71
	else
71
	else
72
		echo "The automatic update of ALCASAR can't be performed."
72
		echo "The automatic update of ALCASAR can't be performed."
73
		echo "The OS must be replaced"
73
		echo "The OS must be replaced"
74
	fi
74
	fi
75
	if [ -e /tmp/alcasar-conf.tar.gz ]
75
	if [ -e /tmp/alcasar-conf.tar.gz ]
76
	then
76
	then
77
		echo
77
		echo
78
		if [ $Lang == "fr" ]
78
		if [ $Lang == "fr" ]
79
		then	
79
		then	
80
			echo "1 - Récupérez le fichier de configuration actuel (/tmp/alcasar-conf.tar.gz)."
80
			echo "1 - Récupérez le fichier de configuration actuel (/tmp/alcasar-conf.tar.gz)."
81
			echo "2 - Installez Linux-Mageia2 (cf. doc d'installation)"
81
			echo "2 - Installez Linux-Mageia2 (cf. doc d'installation)"
82
			echo "3 - copiez le fichier 'alcasar-conf.tar.gz' dans le répertoire '/tmp' avant de lancer l'installation d'ALCASAR"
82
			echo "3 - copiez le fichier 'alcasar-conf.tar.gz' dans le répertoire '/tmp' avant de lancer l'installation d'ALCASAR"
83
		else
83
		else
84
			echo "1 - Retrieve the configuration file (/tmp/alcasar-conf.tar.gz)"
84
			echo "1 - Retrieve the configuration file (/tmp/alcasar-conf.tar.gz)"
85
			echo "2 - Install Linux-Mageia2 (cf. installation doc)"
85
			echo "2 - Install Linux-Mageia2 (cf. installation doc)"
86
			echo "3 - Copy the file 'alcasar-conf.tar.gz' in the folder '/tmp' before launching the installation of ALCASAR"
86
			echo "3 - Copy the file 'alcasar-conf.tar.gz' in the folder '/tmp' before launching the installation of ALCASAR"
87
		fi
87
		fi
88
	fi
88
	fi
89
	exit 1
89
	exit 1
90
fi
90
fi
91
# We prefer wget than curl
91
# We prefer wget than curl
92
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
92
urpmi --no-verify-rpm --auto conf/rpms/$ARCH/wget*.rpm
93
# Set the RPM repository
93
# Set the RPM repository
94
MIRROR_NBR=2
94
MIRROR_NBR=2
95
#                       For Europeans 
95
#                       For Europeans 
96
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
96
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
97
#                       For International install
97
#                       For International install
98
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
98
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
99
try_nb="0"; nb_repository="0"
99
try_nb="0"; nb_repository="0"
100
while [ "$nb_repository" != "2" ]
100
while [ "$nb_repository" != "2" ]
101
do
101
do
102
	try_nb=`expr $try_nb + 1`
102
	try_nb=`expr $try_nb + 1`
103
	MIRRORLIST="MIRRORLIST$try_nb"
103
	MIRRORLIST="MIRRORLIST$try_nb"
104
	rpm_repository_sync 
104
	rpm_repository_sync 
105
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
105
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
106
	if [ "$nb_repository" != "2" ]
106
	if [ "$nb_repository" != "2" ]
107
	then
107
	then
108
		if [ $Lang == "fr" ]
108
		if [ $Lang == "fr" ]
109
		then	
109
		then	
110
			echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
110
			echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
111
		else
111
		else
112
			echo "An error occurs when synchronising the repositories N°$try_nb"
112
			echo "An error occurs when synchronising the repositories N°$try_nb"
113
		fi
113
		fi
114
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
114
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
115
		then
115
		then
116
			rpm_error
116
			rpm_error
117
			exit 1
117
			exit 1
118
		fi
118
		fi
119
		if [ $Lang == "fr" ]
119
		if [ $Lang == "fr" ]
120
		then	
120
		then	
121
			echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
121
			echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
122
		else
122
		else
123
			echo "Do you wan't to try a synchronisation with an other repository?"
123
			echo "Do you wan't to try a synchronisation with an other repository?"
124
		fi
124
		fi
125
		response=0
125
		response=0
126
		PTN='^[oOnNyY]$'
126
		PTN='^[oOnNyY]$'
127
		until [[ $(expr $response : $PTN) -gt 0 ]]
127
		until [[ $(expr $response : $PTN) -gt 0 ]]
128
		do
128
		do
129
			read response
129
			read response
130
		done
130
		done
131
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
131
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
132
		then
132
		then
133
			exit 1
133
			exit 1
134
		fi
134
		fi
135
	fi
135
	fi
136
done
136
done
137
# delete unused RPMs
137
# delete unused RPMs
138
echo "Cleaning the system : "
138
echo "Cleaning the system : "
139
for rm_rpm in shorewall mandi radeontool avahi
139
for rm_rpm in shorewall mandi radeontool avahi
140
do
140
do
141
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
141
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
142
	echo -n "."
142
	echo -n "."
143
done
143
done
144
echo
144
echo
145
# download RPM in cache 
145
# download RPM in cache 
146
if [ $Lang == "fr" ]
146
if [ $Lang == "fr" ]
147
then	
147
then	
148
	echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
148
	echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
149
	echo "Il est temps d'aller prendre un café (ou une bonne bière) ;-)"
149
	echo "Il est temps d'aller prendre un café (ou une bonne bière) ;-)"
150
else
150
else
151
	echo "Updated RPM download. Please wait ..."
151
	echo "Updated RPM download. Please wait ..."
152
	echo "You should now take a coffe (or a good beer) ;-)"
152
	echo "You should now take a coffe (or a good beer) ;-)"
153
fi
153
fi
154
urpmi --auto --auto-update --quiet --test --retry 2
154
urpmi --auto --auto-update --quiet --test --retry 2
155
if [ "$?" != "0" ]
155
if [ "$?" != "0" ]
156
then
156
then
157
	echo
157
	echo
158
	if [ $Lang == "fr" ]
158
	if [ $Lang == "fr" ]
159
	then	
159
	then	
160
		echo "Une erreur a été détectée lors de la récupération des paquetages."
160
		echo "Une erreur a été détectée lors de la récupération des paquetages."
161
	else
161
	else
162
		echo "An error occurs when downloading RPMS"
162
		echo "An error occurs when downloading RPMS"
163
	fi
163
	fi
164
	rpm_error
164
	rpm_error
165
	exit 1
165
	exit 1
166
fi
166
fi
167
# update with cached RPM
167
# update with cached RPM
168
urpmi --auto --auto-update
168
urpmi --auto --auto-update
169
if [ "$?" != "0" ]
169
if [ "$?" != "0" ]
170
then
170
then
171
	echo
171
	echo
172
	if [ $Lang == "fr" ]
172
	if [ $Lang == "fr" ]
173
	then	
173
	then	
174
		echo "Une erreur a été détectée lors de la mise à jour des paquetages."
174
		echo "Une erreur a été détectée lors de la mise à jour des paquetages."
175
	else
175
	else
176
		echo "An error occurs when updating packages"
176
		echo "An error occurs when updating packages"
177
	fi
177
	fi
178
	rpm_error
178
	rpm_error
179
	exit 1
179
	exit 1
180
fi
180
fi
181
# Clean the RPM cache
181
# Clean the RPM cache
182
urpmi --clean
182
urpmi --clean
183
# Download of ALCASAR specifics RPM in cache (and test)
183
# Download of ALCASAR specifics RPM in cache (and test)
184
if [ $Lang == "fr" ]
184
if [ $Lang == "fr" ]
185
then	
185
then	
186
	echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
186
	echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
187
else
187
else
188
	echo "Download of complementary packages. Please wait ..."
188
	echo "Download of complementary packages. Please wait ..."
189
fi
189
fi
190
urpmi --auto $PACKAGES --quiet --test --retry 2
190
urpmi --auto $PACKAGES --quiet --test --retry 2
191
if [ "$?" != "0" ]
191
if [ "$?" != "0" ]
192
then
192
then
193
	echo
193
	echo
194
	if [ $Lang == "fr" ]
194
	if [ $Lang == "fr" ]
195
	then	
195
	then	
196
		echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
196
		echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
197
	else
197
	else
198
		echo "An error occurs when downloading complementary packages"
198
		echo "An error occurs when downloading complementary packages"
199
	fi
199
	fi
200
	rpm_error
200
	rpm_error
201
	exit 1
201
	exit 1
202
fi
202
fi
203
# update with cached RPM
203
# update with cached RPM
204
urpmi --auto $PACKAGES 
204
urpmi --auto $PACKAGES 
205
if [ "$?" != "0" ]
205
if [ "$?" != "0" ]
206
then
206
then
207
	echo
207
	echo
208
	if [ $Lang == "fr" ]
208
	if [ $Lang == "fr" ]
209
	then	
209
	then	
210
		echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
210
		echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
211
	else
211
	else
212
		echo "An error occurs when installing complementary packages"
212
		echo "An error occurs when installing complementary packages"
213
	fi
213
	fi
214
	rpm_error
214
	rpm_error
215
	exit 1
215
	exit 1
216
fi
216
fi
217
# delete old alcasar RPMs and unused services
217
# delete old alcasar RPMs and unused services
218
for rm_rpm in c-icap-server lib64chilli0 libchilli0 python-coova-chilli cyrus-sasl mageia-gfxboot-theme
218
for rm_rpm in c-icap-server lib64chilli0 libchilli0 python-coova-chilli cyrus-sasl mageia-gfxboot-theme
219
do
219
do
220
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
220
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
221
done
221
done
222
# Save chilli launch script (erase with new rpm one)
222
# Save chilli launch script (erase with new rpm one)
223
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
223
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
224
# Install home made RPMs
224
# Install home made RPMs
225
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
225
urpmi --no-verify --auto conf/rpms/$ARCH/*.rpm
226
# restore chilli launch script
226
# restore chilli launch script
227
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
227
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
228
# Clean the RPM cache
228
# Clean the RPM cache
229
urpmi --clean
229
urpmi --clean
230
 
230
 
231
#Keep only kernel-desktop-3.4.45-1.mga2-1-1.mga2 version, and remove all others
231
#Keep only kernel-desktop-3.4.45-1.mga2-1-1.mga2 version, and remove all others
232
kernelVersion=$(rpm -qa | grep "kernel-desktop")
232
kernelVersion=$(rpm -qa | grep "kernel-desktop")
233
for i in $kernelVersion
233
for i in $kernelVersion
234
do
234
do
235
	if [ ! $i = "kernel-desktop-3.4.45-1.mga2-1-1.mga2" ];then
235
	if [ ! $i = "kernel-desktop-3.4.45-1.mga2-1-1.mga2" ];then
236
		urpme $i
236
		urpme $i
237
	fi
237
	fi
238
done
238
done
239
 
239
 
240
#Fix the kernel version to : kernel-desktop-3.4.45-1.mga2-1-1.mga2
240
#Fix the kernel version to : kernel-desktop-3.4.45-1.mga2-1-1.mga2
241
	echo "/^kernel-desktop/" > /etc/urpmi/skip.list 
241
	echo "/^kernel-desktop/" > /etc/urpmi/skip.list 
242
 
242
 
243
#update tht kernel modules list
243
#update tht kernel modules list
244
depmod -a
244
depmod -a
245
 
245
 
246
exit 0
246
exit 0
247
 
247