/
yuminstall.inc
222 lines (188 loc) · 10.9 KB
/
yuminstall.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
yumcleanup() {
echo "*************************************************"
cecho "* Remove unneeded YUM packages" $boldgreen
echo "*************************************************"
echo "please wait till completion."
if [[ "$INITIALINSTALL" = [yY] ]]; then
yum -y remove httpd* php* samba* exim* bind*
fi
echo "*************************************************"
cecho "* yum clean all & update" $boldgreen
echo "*************************************************"
echo "please wait till completion."
yum${CACHESKIP} -q clean all
yum${CACHESKIP} -y update glibc\*
yum${CACHESKIP} -y update yum\* rpm\* python\*
yum${CACHESKIP} -q clean all
yum${CACHESKIP} -y update
}
yuminstall() {
echo "*************************************************"
cecho "* Installing Development Tools" $boldgreen
echo "*************************************************"
echo "please wait for yum download and installs to complete."
echo "yum installs in less verbose mode so final install status is only shown.."
echo "...."
echo "......"
echo "........."
if [[ "$CENTOSVER" = '6.0' || "$CENTOSVER" = '6.1' || "$CENTOSVER" = '6.2' || "$CENTOSVER" = '6.3' || "$CENTOSVER" = '6.4' || "$CENTOSVER" = '6.5' || "$CENTOSVER" = '6.6' || "$CENTOSVER" = '6.7' || "$CENTOSVER" = '6.8' || "$CENTOSVER" = '6.9' || "$CENTOSVER" = '7.0' || "$CENTOSVER" = '7.1' || "$CENTOSVER" = '7.2' || "$CENTOSVER" = '7.3' || "$CENTOSVER" = '7.4' || "$CENTOSVER" = '7.5' || "$CENTOSVER" = '7.6' || "$CENTOSVER" = '7.7' ]]; then
yum -y -q install yum-plugin-priorities yum-plugin-fastestmirror yum-plugin-downloadonly epel-release
sed -i 's/metadata_expire=1h/metadata_expire=4h/g' /etc/yum.conf
# centos 6 unlike centos 7 doesn't install CR yum repo by default
# https://wiki.centos.org/AdditionalResources/Repositories/CR
if [[ "$CENTOS_SIX" = '6' ]]; then
yum -y -q install centos-release-cr
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/CentOS-CR.repo
# echo "priority=1" >> /etc/yum.repos.d/CentOS-CR.repo
fi
yumprior
else
yum -y -q install yum-priorities yum-fastestmirror yum-downloadonly epel-release
sed -i 's/metadata_expire=1h/metadata_expire=4h/g' /etc/yum.conf
yumprior
fi
yumcentosfivedownload
### smarter yum install update routine ###
#yum -y -q update kernel-devel
if [[ -z "$(rpm -qa ImageMagick-last)" ]]; then
if [ -f /tmp/curlinstaller-yum ]; then
echo
echo "skip unneeded yum package check/installs for curl installer routines"
echo
PACKAGE='cracklib'
else
PACKAGE='virt-what gawk deltarpm cracklib ca-certificates yum-plugin-security yum-utils bash mlocate subversion rsyslog dos2unix net-tools imake bind-utils libatomic_ops-devel time coreutils autoconf cronie crontabs cronie-anacron nc gcc gcc-c++ automake libtool make libXext-devel unzip patch sysstat openssh flex bison file libgcj libtool-libs libtool-ltdl-devel krb5-devel libXpm-devel nano gmp-devel aspell-devel numactl lsof pkgconfig gdbm-devel tk-devel bluez-libs-devel iptables* rrdtool diffutils which perl-Test-Simple perl-ExtUtils-Embed perl-ExtUtils-MakeMaker perl-Time-HiRes perl-libwww-perl perl-Crypt-SSLeay perl-Net-SSLeay cyrus-imapd cyrus-sasl-md5 cyrus-sasl-plain strace cmake git net-snmp-libs net-snmp-utils iotop'
fi
else
if [ -f /tmp/curlinstaller-yum ]; then
echo
echo "skip unneeded yum package check/installs for curl installer routines"
echo
PACKAGE='cracklib'
else
PACKAGE='virt-what gawk deltarpm ca-certificates yum-plugin-security yum-utils bash mlocate subversion rsyslog dos2unix net-tools imake bind-utils libatomic_ops-devel time coreutils autoconf cronie crontabs cronie-anacron nc gcc gcc-c++ automake libtool make libXext-devel unzip patch sysstat openssh flex bison file libgcj libtool-libs libtool-ltdl-devel krb5-devel libXpm-devel nano gmp-devel aspell-devel numactl lsof pkgconfig gdbm-devel tk-devel bluez-libs-devel iptables* rrdtool diffutils which ImageMagick-last ImageMagick-last-devel ImageMagick-last-c++ ImageMagick-last-c++-devel perl-Test-Simple perl-ExtUtils-MakeMaker perl-Time-HiRes perl-libwww-perl perl-Crypt-SSLeay perl-Net-SSLeay cyrus-imapd cyrus-sasl-md5 cyrus-sasl-plain strace cmake git net-snmp-libs net-snmp-utils iotop'
fi
fi
declare -a array
array=(${PACKAGE})
ystarttime=$(date +%s.%N)
{
# if curl one liner is used and detected should skip this yum install routine
# since it's already done by curl installer script
if [ ! -f /usr/local/src/curlinstall_yum.txt ]; then
for pkg in ${array[@]}
do
echo Processing package: $pkg
YUMINSTALLRPMCHECK=$(rpm -qa $pkg)
#echo $YUMINSTALLRPMCHECK
if [ "$YUMINSTALLRPMCHECK" ]; then
echo "----------------------------------------------------------------------------------"
# yum${CACHESKIP}-q -y update $pkg
# yum${CACHESKIP} -q list $pkg
echo "$pkg already installed"
echo "----------------------------------------------------------------------------------"
else
echo "----------------------------------------------------------------------------------"
cecho "Installing $pkg" $boldyellow
echo "----------------------------------------------------------------------------------"
yum${CACHESKIP} -q -y install $pkg
# yum${CACHESKIP} -q list $pkg
echo "----------------------------------------------------------------------------------"
fi
done
fi # /usr/local/src/curlinstall_yum.txt
## grouped devels for faster install
if [[ -z "$(rpm -qa ImageMagick-last)" ]]; then
if [ -f /tmp/curlinstaller-yum ]; then
echo
echo "skip unneeded yum package check/installs for curl installer routines"
echo
PACKAGEG='{libvpx,libvpx-devel} {ImageMagick,ImageMagick-devel} {ImageMagick-c++,ImageMagick-c++-devel}'
else
PACKAGEG='{libvpx,libvpx-devel} {t1lib,t1lib-devel} {expect,expect-devel} {readline,readline-devel} {libedit,libedit-devel} {openssl,openssl-devel} {curl,curl-devel} {openldap,openldap-devel} {zlib,zlib-devel} {gd,gd-devel} {pcre,pcre-devel} {gettext,gettext-devel} {libidn,libidn-devel} {libjpeg,libjpeg-devel} {libpng,libpng-devel} {freetype,freetype-devel} {libxml2,libxml2-devel} {glib2,glib2-devel} {bzip2,bzip2-devel} {ncurses,ncurses-devel} {e2fsprogs,e2fsprogs-devel} {libc-client,libc-client-devel} {ImageMagick,ImageMagick-devel} {ImageMagick-c++,ImageMagick-c++-devel} {cyrus-sasl,cyrus-sasl-devel} {pam,pam-devel} {libaio,libaio-devel} {libevent,libevent-devel} {recode,recode-devel} {libtidy,libtidy-devel} {net-snmp,net-snmp-devel} {enchant,enchant-devel} {lua,lua-devel}'
fi
else
if [ -f /tmp/curlinstaller-yum ]; then
echo
echo "skip unneeded yum package check/installs for curl installer routines"
echo
PACKAGEG='{libvpx,libvpx-devel} {ImageMagicklast,ImageMagick-last-devel} {ImageMagick-last-c++,ImageMagick-last-c++-devel}'
else
PACKAGEG='{libvpx,libvpx-devel} {t1lib,t1lib-devel} {expect,expect-devel} {readline,readline-devel} {libedit,libedit-devel} {openssl,openssl-devel} {curl,curl-devel} {openldap,openldap-devel} {zlib,zlib-devel} {gd,gd-devel} {pcre,pcre-devel} {gettext,gettext-devel} {libidn,libidn-devel} {libjpeg,libjpeg-devel} {libpng,libpng-devel} {freetype,freetype-devel} {libxml2,libxml2-devel} {glib2,glib2-devel} {bzip2,bzip2-devel} {ncurses,ncurses-devel} {e2fsprogs,e2fsprogs-devel} {libc-client,libc-client-devel} {ImageMagicklast,ImageMagick-last-devel} {ImageMagick-last-c++,ImageMagick-last-c++-devel} {cyrus-sasl,cyrus-sasl-devel} {pam,pam-devel} {libaio,libaio-devel} {libevent,libevent-devel} {recode,recode-devel} {libtidy,libtidy-devel} {net-snmp,net-snmp-devel} {enchant,enchant-devel} {lua,lua-devel}'
fi
fi
declare -a arrayb
arrayb=(${PACKAGEG})
# if curl one liner is used and detected should skip this yum install routine
# since it's already done by curl installer script
if [ ! -f /usr/local/src/curlinstall_yum.txt ]; then
for pkgg in ${arrayb[@]}
do
echo Processing package: $pkgg
pkggp=$(echo $pkgg | sed -e 's|{||' -e 's|}||' -e 's|,| |')
YUMINSTALLRPMCHECK=$(rpm -qa $pkggp | wc -l)
#echo $YUMINSTALLRPMCHECK
if [[ "$YUMINSTALLRPMCHECK" = '2' ]]; then
echo "----------------------------------------------------------------------------------"
# yum${CACHESKIP}-q -y update $pkgg
# yum${CACHESKIP} -q list $pkgg
echo "$pkgg already installed"
echo "----------------------------------------------------------------------------------"
else
echo "----------------------------------------------------------------------------------"
cecho "Installing $pkgg" $boldyellow
echo "----------------------------------------------------------------------------------"
yum${CACHESKIP} -q -y install $pkggp
# yum${CACHESKIP} -q list $pkggp
echo "----------------------------------------------------------------------------------"
fi
done
fi # /usr/local/src/curlinstall_yum.txt
yum${CACHESKIP} -y -q install mytop iftop
if [ -f /usr/bin/mytop ]; then
sed -i 's/"long|!"/"long|long_nums|l!"/g' /usr/bin/mytop
fi
if [ ! -f /proc/user_beancounters ]; then
yum -y install ipset ipset-devel
fi
yum clean all -q
yumcentossixdownload
yumcentossevendownload
axelsetup
geoipinstall
customrpms
# use Remi's ImageMagicK 6.9.* package
if [[ "$REMIREPO_DISABLE" = [nN] ]]; then
if [ -f /etc/yum.repos.d/remi.repo ]; then
if [[ "$(rpm -qa ImageMagick)" ]]; then
echo
echo "----------------------------------------------------------------------------------"
cecho "Using Remi YUM repo ImageMagicK version" $boldyellow
echo "----------------------------------------------------------------------------------"
yum -y install lcms2-devel libwebp libwebp-devel OpenEXR-devel ilmbase-devel libGLU-devel libGL-devel mesa-libGL mesa-libGL-devel libXxf86vm libXxf86vm-devel --enablerepo=remi
yum -y remove ImageMagick
if [[ "$CENTOS_SIX" = '6' ]]; then
# yum -y install libwebp libwebp-devel --skip-broken
yum -y install ImageMagick-last ImageMagick-last-devel ImageMagick-last-c++ ImageMagick-last-c++-devel --enablerepo=remi --disableplugin=priorities --skip-broken
else
yum -y install ImageMagick-last ImageMagick-last-devel ImageMagick-last-c++ ImageMagick-last-c++-devel --enablerepo=remi --disableplugin=priorities
fi
echo
fi
if [[ "$(rpm -qa ImageMagick-last)" ]]; then
yum -y update ImageMagick-last ImageMagick-last-devel ImageMagick-last-c++ ImageMagick-last-c++-devel --enablerepo=remi --disableplugin=priorities
fi
fi
fi
# remove /tmp/curlinstaller-yum
rm -rf /tmp/curlinstaller-yum
yum -y update
} 2>&1 | tee ${CENTMINLOGDIR}/centminmod_yumtimes_${DT}.log
yendtime=$(date +%s.%N)
YINSTALLTIME=$(echo "scale=2;$yendtime - $ystarttime"|bc )
echo "" >> ${CENTMINLOGDIR}/centminmod_yumtimes_${DT}.log
echo "Total YUM Time: $YINSTALLTIME seconds" >> ${CENTMINLOGDIR}/centminmod_yumtimes_${DT}.log
echo "Total YUM Time: $YINSTALLTIME seconds" > ${CENTMINLOGDIR}/centminmod_profiletimes_${DT}.log
\cp /var/cache/yum/timedhosts.txt ${CENTMINLOGDIR}/timedhosts_${DT}.txt
ls -lah ${CENTMINLOGDIR}/centminmod_yumtimes_${DT}.log
}