Subversion Repositories ALCASAR

Rev

Rev 2728 | Rev 2741 | 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 2730 2019-05-21 22:03:25Z rexy $
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
 
2454 tom.houday 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`
2416 richard 12
VERSION="6"
2454 tom.houday 13
ARCH="x86_64"
1799 richard 14
# The kernel version we compile netflow for
2730 rexy 15
KERNEL="kernel-server-4.14.119-1.mga6-1-1.mga6"
532 richard 16
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
2728 rexy 17
PACKAGES="arp-scan vim-enhanced freeradius freeradius-mysql freeradius-ldap lighttpd lighttpd-mod_auth php-fpm e2guardian 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 usbutils locales-en usb_modeswitch tinyproxy vnstat php-gd sudo iftop man dos2unix p7zip bc msec kernel-userspace-headers kernel-firmware-nonfree dnsmasq dhcp-server netcat-traditional"
1207 richard 18
 
497 richard 19
rpm_repository_sync ()
20
{
835 richard 21
cat <<EOF > /etc/urpmi/urpmi.cfg
22
{
23
downloader: wget
497 richard 24
}
835 richard 25
EOF
1003 richard 26
echo ${!MIRRORLIST}
27
urpmi.addmedia core --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/release
28
urpmi.addmedia core-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/core/updates
1985 richard 29
urpmi.addmedia nonfree --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/nonfree/release
30
urpmi.addmedia nonfree-updates --update --probe-synthesis --mirrorlist ${!MIRRORLIST} /media/nonfree/updates
835 richard 31
}
497 richard 32
 
532 richard 33
rpm_error ()
34
{
35
echo
1060 richard 36
if [ $Lang == "fr" ]
2454 tom.houday 37
then
1060 richard 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'"
40
else
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'"
43
fi
532 richard 44
}
1799 richard 45
 
1336 richard 46
# extract the current Mageia version and hardware architecture (i586 ou X64)
230 franck 47
fic=`cat /etc/product.id`
457 richard 48
old="$IFS"
49
IFS=","
230 franck 50
set $fic
51
for i in $*
52
do
1003 richard 53
        if [ "`echo $i|grep distribution|cut -d'=' -f1`" == "distribution" ]
2454 tom.houday 54
        then
1003 richard 55
                DISTRIBUTION=`echo $i|cut -d"=" -f2`
56
        fi
230 franck 57
        if [ "`echo $i|grep version|cut -d'=' -f1`" == "version" ]
2454 tom.houday 58
        then
457 richard 59
                CURRENT_VERSION=`echo $i|cut -d"=" -f2`
230 franck 60
        fi
456 franck 61
        if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
2454 tom.houday 62
        then
456 franck 63
                ARCH=`echo $i|cut -d"=" -f2`
64
        fi
230 franck 65
done
457 richard 66
IFS="$old"
1799 richard 67
 
532 richard 68
# We prefer wget than curl
1943 richard 69
urpmi --no-verify-rpm --auto rpms/$ARCH/wget*.rpm
1799 richard 70
 
1350 richard 71
# Set the RPM repository (if not already set)
1352 richard 72
ACTIVE_REPO=`cat /etc/urpmi/urpmi.cfg|grep "mageia.org"|wc -l`
2056 richard 73
MIRROR_NBR=2
2454 tom.houday 74
#                       For Europeans
2587 tom.houday 75
MIRRORLIST1="https://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
2056 richard 76
#                       For International install
2587 tom.houday 77
MIRRORLIST2="https://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
2056 richard 78
try_nb="0"; nb_repository="0"
79
while [ "$nb_repository" != "4" ]
80
do
81
        try_nb=`expr $try_nb + 1`
82
        MIRRORLIST="MIRRORLIST$try_nb"
2454 tom.houday 83
        rpm_repository_sync
2056 richard 84
        nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
85
        if [ "$nb_repository" != "4" ]
86
        then
87
                if [ $Lang == "fr" ]
2454 tom.houday 88
                then
2056 richard 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 ]
497 richard 94
                then
2056 richard 95
                        rpm_error
497 richard 96
                        exit 1
97
                fi
2056 richard 98
                if [ $Lang == "fr" ]
2454 tom.houday 99
                then
2431 tom.houday 100
                        echo "Voulez-vous tenter une synchronisation avec un autre dépôt ? (O/n)"
2056 richard 101
                else
2431 tom.houday 102
                        echo "Do you wan't to try a synchronisation with an other repository? (Y/n)"
2056 richard 103
                fi
104
                response=0
105
                PTN='^[oOnNyY]$'
106
                until [[ $(expr $response : $PTN) -gt 0 ]]
107
                do
108
                        read response
109
                done
2454 tom.houday 110
                if [ "$response" = "n" ] || [ "$response" = "N" ]
2056 richard 111
                then
112
                        exit 1
113
                fi
114
        fi
115
done
1799 richard 116
 
2730 rexy 117
# download the kernel used by ALCASAR
1799 richard 118
if [ $Lang == "fr" ]
2454 tom.houday 119
then
1799 richard 120
        echo "Récupération du noyau Linux exploité par ALCASAR. Veuillez patienter ..."
121
else
122
        echo "Download the Linux kernel used by ALCASAR. Please wait ..."
123
fi
124
urpmi --auto --quiet $KERNEL
2454 tom.houday 125
# download updated RPM in cache
1207 richard 126
if [ $Lang == "fr" ]
2454 tom.houday 127
then
1060 richard 128
        echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
129
        echo "Il est temps d'aller prendre un café (ou une bonne bière) ;-)"
130
else
131
        echo "Updated RPM download. Please wait ..."
132
        echo "You should now take a coffe (or a good beer) ;-)"
133
fi
835 richard 134
urpmi --auto --auto-update --quiet --test --retry 2
460 richard 135
if [ "$?" != "0" ]
136
then
137
        echo
1060 richard 138
        if [ $Lang == "fr" ]
2454 tom.houday 139
        then
1060 richard 140
                echo "Une erreur a été détectée lors de la récupération des paquetages."
141
        else
142
                echo "An error occurs when downloading RPMS"
143
        fi
532 richard 144
        rpm_error
470 richard 145
        exit 1
460 richard 146
fi
1799 richard 147
 
460 richard 148
# update with cached RPM
149
urpmi --auto --auto-update
799 richard 150
if [ "$?" != "0" ]
151
then
152
        echo
1060 richard 153
        if [ $Lang == "fr" ]
2454 tom.houday 154
        then
1060 richard 155
                echo "Une erreur a été détectée lors de la mise à jour des paquetages."
156
        else
157
                echo "An error occurs when updating packages"
158
        fi
799 richard 159
        rpm_error
160
        exit 1
161
fi
772 richard 162
# Clean the RPM cache
163
urpmi --clean
1799 richard 164
 
532 richard 165
# Download of ALCASAR specifics RPM in cache (and test)
1060 richard 166
if [ $Lang == "fr" ]
2454 tom.houday 167
then
1060 richard 168
        echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
169
else
170
        echo "Download of complementary packages. Please wait ..."
171
fi
835 richard 172
urpmi --auto $PACKAGES --quiet --test --retry 2
532 richard 173
if [ "$?" != "0" ]
174
then
175
        echo
1060 richard 176
        if [ $Lang == "fr" ]
2454 tom.houday 177
        then
1060 richard 178
                echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
179
        else
180
                echo "An error occurs when downloading complementary packages"
181
        fi
532 richard 182
        rpm_error
183
        exit 1
184
fi
1799 richard 185
 
532 richard 186
# update with cached RPM
2454 tom.houday 187
urpmi --auto $PACKAGES
799 richard 188
if [ "$?" != "0" ]
189
then
190
        echo
1060 richard 191
        if [ $Lang == "fr" ]
2454 tom.houday 192
        then
1060 richard 193
                echo "Une erreur a été détectée lors de l'installation des paquetages complémentaires."
194
        else
195
                echo "An error occurs when installing complementary packages"
196
        fi
799 richard 197
        rpm_error
198
        exit 1
199
fi
1799 richard 200
 
201
# Keep only the kernel version we compil netflow with, and remove all others
1801 richard 202
kernelVersion=$(rpm -qa | grep -e ^kernel-server -e ^kernel-desktop)
1799 richard 203
for i in $kernelVersion
204
do
1801 richard 205
        if [ $i != $KERNEL ];then
1799 richard 206
                urpme --auto $i
207
        fi
208
done
1348 richard 209
# delete unused RPMs
210
if [ $Lang == "fr" ]
211
then
212
        echo "Cleaning the system : "
213
else
214
        echo "Nettoyage du système : "
215
fi
2563 rexy 216
rm_rpm="shorewall mandi plymouth cpupower squid"
2227 richard 217
/usr/sbin/urpme --auto -a $rm_rpm
2291 richard 218
/usr/sbin/urpme --auto --auto-orphans
1207 richard 219
 
972 richard 220
# Save chilli launch script (erase with new rpm one)
1007 richard 221
[ -e /etc/chilli.conf ] && cp /etc/chilli.conf /tmp/
972 richard 222
# Install home made RPMs
1938 richard 223
urpmi --no-verify --auto rpms/$ARCH/*.rpm
972 richard 224
# restore chilli launch script
1007 richard 225
[ -e /tmp/chilli.conf ] && mv /tmp/chilli.conf /etc/
532 richard 226
# Clean the RPM cache
227
urpmi --clean
1817 richard 228
# the ipt-netflow RPM add the kernel module ipt_NETFLOW (the modules dependance tree need to be updated)
229
/sbin/depmod -a
2730 rexy 230
# fix some RPM versions
231
echo "/^kernel/" > /etc/urpmi/skip.list
232
echo "/^freeradius/" >> /etc/urpmi/skip.list
2417 richard 233
exit 0