Subversion Repositories ALCASAR

Rev

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