Subversion Repositories ALCASAR

Rev

Rev 1056 | Rev 1827 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
941 richard 1
#!/bin/bash
958 franck 2
# $Id: alcasar-rpm-download.sh 1767 2016-01-16 18:35:35Z richard $
933 franck 3
 
4
# alcasar-urpmi.sh
5
# by Franck BOUIJOUX and Richard REY
6
# This script is distributed under the Gnu General Public License (GPL)
7
 
941 richard 8
# récupération des RPM nécessaire dans un fichier tarball
1007 richard 9
# retrieve needed RPM in a tarball file
933 franck 10
 
1767 richard 11
VERSION="4"
941 richard 12
ARCH="i586" 
933 franck 13
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
1767 richard 14
PACKAGES="vim-enhanced freeradius freeradius-mysql freeradius-ldap freeradius-web 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 dnsmasq rsync clamav perl-rrdtool perl-MailTools perl-Socket6 fail2ban gnupg ulogd dkms-ipt_NETFLOW iptables-NETFLOW pm-fallback-policy ipset cronie-anacron gammu usbutils locales-en usb_modeswitch tinyproxy vnstat php-gd sudo iftop"
933 franck 15
 
16
rpm_repository_sync ()
17
{
18
cat <<EOF > /etc/urpmi/urpmi.cfg
19
{
20
downloader: wget
21
}
22
EOF
1007 richard 23
urpmi.addmedia --probe-synthesis --mirrorlist ${!MIRRORLIST} core /media/core/release
24
urpmi.addmedia --update --probe-synthesis --mirrorlist ${!MIRRORLIST} core_updates /media/core/updates
933 franck 25
}
26
 
27
rpm_error ()
28
{
29
echo
30
echo "Relancez l'installation ultérieurement."
31
echo "Si vous rencontrez à nouveau ce problème, modifier les variables MIRRORLIST[1&2] du fichier 'scripts/alcasar-urpmi.sh'"
32
echo "Try an other install later."
33
echo "If this problem occurs again, change the MIRRORLIST[1&2] variables in the file 'scripts/alcasar-urpmi.sh'"
34
}
35
 
941 richard 36
# extract the current architecture (i586 ou X64)
37
fic=`cat /etc/product.id`
38
old="$IFS"
39
IFS=","
40
set $fic
41
for i in $*
42
do
43
	if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
44
	then 
45
		ARCH=`echo $i|cut -d"=" -f2`
46
	fi
47
done
48
IFS="$old"
933 franck 49
# We prefer wget than curl
1767 richard 50
wget_exist=`rpm -qa|grep wget|wc -l`
51
if [ "$wget_exist" -eq "0" ]
52
then
53
	urpmi --no-verify-rpm --auto ../../conf/rpms/$ARCH/wget*.rpm
54
fi
941 richard 55
# Set the RPM repository
56
MIRROR_NBR=2
57
#                       For french ALCASARistes
1007 richard 58
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
941 richard 59
#                       For International install
1007 richard 60
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
941 richard 61
try_nb="0"; nb_repository="0"
1012 richard 62
while [ "$nb_repository" != "2" ]
941 richard 63
do
64
	try_nb=`expr $try_nb + 1`
65
	MIRRORLIST="MIRRORLIST$try_nb"
66
	rpm_repository_sync 
67
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
1012 richard 68
	if [ "$nb_repository" != "2" ]
941 richard 69
	then
70
		echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
71
		echo "An error occurs when synchronising the repositories N°$try_nb"
72
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
73
		then
74
			rpm_error
75
			exit 1
76
		fi
77
		echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
78
		echo "Do you wan't to try a synchronisation with an other repository?"
79
		response=0
80
		PTN='^[oOnNyY]$'
81
		until [[ $(expr $response : $PTN) -gt 0 ]]
82
		do
83
			read response
84
		done
85
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
86
		then
87
			exit 1
88
		fi
89
	fi
90
done
91
# delete unused RPMs
92
echo "Cleaning the system : "
93
for rm_rpm in shorewall dhcp-server cyrus-sasl distcache-server avahi mandi radeontool mondo mindi
94
do
95
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
96
	echo -n "."
97
done
98
urpmi --clean
99
# download RPM in cache 
100
echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
101
echo "Updated RPM download. Please wait ..."
102
echo "Il est temps d'aller prendre un café :-) "
103
echo "You should now take a Beer ;-) "
104
urpmi --auto --auto-update --quiet --test --retry 2
105
if [ "$?" != "0" ]
106
then
107
	echo
108
	echo "Une erreur a été détectée lors de la récupération des paquetages."
109
	echo "An error occurs when downloading RPMS"
110
	rpm_error
111
	exit 1
112
fi
113
# update with cached RPM
114
urpmi --auto --auto-update --noclean
115
if [ "$?" != "0" ]
116
then
117
	echo
118
	echo "Une erreur a été détectée lors de la mise à jour des paquetages."
119
	echo "An error occurs when updating packages"
120
	rpm_error
121
	exit 1
122
fi
933 franck 123
 
941 richard 124
# Download of ALCASAR specifics RPM in cache (and test)
125
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
126
echo "Download of complementary packages. Please wait ..."
127
urpmi --auto $PACKAGES --quiet --test --retry 2
128
if [ "$?" != "0" ]
129
then
130
	echo
131
	echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
132
	echo "An error occurs when downloading complementary packages"
133
	rpm_error
134
	exit 1
135
fi
136
echo "archive creation. Please wait..."
137
cd /var/cache/urpmi
138
tar -czf rpms-$ARCH.tar.gz rpms/
933 franck 139
# Clean the RPM cache
140
urpmi --clean
941 richard 141
mv rpms-$ARCH.tar.gz /root/
142
cd
1012 richard 143
echo "Your RPM archive file is /root/rpms-$ARCH.tar.gz"
933 franck 144
exit 0
145