Subversion Repositories ALCASAR

Rev

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

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