Subversion Repositories ALCASAR

Rev

Rev 1805 | Rev 1837 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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