Subversion Repositories ALCASAR

Rev

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