Subversion Repositories ALCASAR

Rev

Rev 1007 | Rev 1056 | 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 1012 2013-01-20 22:33:33Z 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
 
1007 richard 11
VERSION="2"
941 richard 12
ARCH="i586" 
933 franck 13
# ****** Alcasar needed RPMS - paquetages nécessaires au fonctionnement d'Alcasar ******
1007 richard 14
PACKAGES="freeradius freeradius-mysql freeradius-ldap freeradius-web apache-mpm-prefork apache-mod_ssl apache-mod_php iptables squid dansguardian postfix mariadb logwatch ntp awstats bind-utils openssh-server php-xml php-ldap php-mysql pam_ccreds rng-utils dnsmasq syslinux rsync cronie-anacron clamav pm-fallback-policy"
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
941 richard 50
urpmi --no-verify-rpm --auto ../../conf/rpms/$ARCH/wget*.rpm
51
# Set the RPM repository
52
MIRROR_NBR=2
53
#                       For french ALCASARistes
1007 richard 54
MIRRORLIST1="http://www.mirrorservice.org/sites/mageia.org/pub/mageia/distrib/$VERSION/$ARCH"
941 richard 55
#                       For International install
1007 richard 56
MIRRORLIST2="http://mirrors.mageia.org/api/mageia.$VERSION.$ARCH.list"
941 richard 57
try_nb="0"; nb_repository="0"
1012 richard 58
while [ "$nb_repository" != "2" ]
941 richard 59
do
60
	try_nb=`expr $try_nb + 1`
61
	MIRRORLIST="MIRRORLIST$try_nb"
62
	rpm_repository_sync 
63
	nb_repository=`cat /etc/urpmi/urpmi.cfg|grep mirrorlist|wc -l`
1012 richard 64
	if [ "$nb_repository" != "2" ]
941 richard 65
	then
66
		echo "Une erreur a été détectée lors de la synchronisation avec le dépot N°$try_nb."
67
		echo "An error occurs when synchronising the repositories N°$try_nb"
68
		if [ $(expr $try_nb) -eq $MIRROR_NBR ]
69
		then
70
			rpm_error
71
			exit 1
72
		fi
73
		echo "Voulez-vous tenter une synchronisation avec un autre dépôt?"
74
		echo "Do you wan't to try a synchronisation with an other repository?"
75
		response=0
76
		PTN='^[oOnNyY]$'
77
		until [[ $(expr $response : $PTN) -gt 0 ]]
78
		do
79
			read response
80
		done
81
		if [ "$response" = "n" ] || [ "$response" = "N" ] 
82
		then
83
			exit 1
84
		fi
85
	fi
86
done
87
# delete unused RPMs
88
echo "Cleaning the system : "
89
for rm_rpm in shorewall dhcp-server cyrus-sasl distcache-server avahi mandi radeontool mondo mindi
90
do
91
	/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
92
	echo -n "."
93
done
94
urpmi --clean
95
# download RPM in cache 
96
echo "Récupération des paquetages de mise à jour. Veuillez patienter ..."
97
echo "Updated RPM download. Please wait ..."
98
echo "Il est temps d'aller prendre un café :-) "
99
echo "You should now take a Beer ;-) "
100
urpmi --auto --auto-update --quiet --test --retry 2
101
if [ "$?" != "0" ]
102
then
103
	echo
104
	echo "Une erreur a été détectée lors de la récupération des paquetages."
105
	echo "An error occurs when downloading RPMS"
106
	rpm_error
107
	exit 1
108
fi
109
# update with cached RPM
110
urpmi --auto --auto-update --noclean
111
if [ "$?" != "0" ]
112
then
113
	echo
114
	echo "Une erreur a été détectée lors de la mise à jour des paquetages."
115
	echo "An error occurs when updating packages"
116
	rpm_error
117
	exit 1
118
fi
933 franck 119
 
941 richard 120
# Download of ALCASAR specifics RPM in cache (and test)
121
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
122
echo "Download of complementary packages. Please wait ..."
123
urpmi --auto $PACKAGES --quiet --test --retry 2
124
if [ "$?" != "0" ]
125
then
126
	echo
127
	echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
128
	echo "An error occurs when downloading complementary packages"
129
	rpm_error
130
	exit 1
131
fi
132
echo "archive creation. Please wait..."
133
cd /var/cache/urpmi
134
tar -czf rpms-$ARCH.tar.gz rpms/
933 franck 135
# Clean the RPM cache
136
urpmi --clean
941 richard 137
mv rpms-$ARCH.tar.gz /root/
138
cd
1012 richard 139
echo "Your RPM archive file is /root/rpms-$ARCH.tar.gz"
933 franck 140
exit 0
141