Subversion Repositories ALCASAR

Rev

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