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