Subversion Repositories ALCASAR

Rev

Rev 941 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

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