build_hue_common.sh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. #!/usr/bin/env bash
  2. function big_console_header() {
  3. set +x
  4. local text="$*"
  5. local spacing=$(( (75+${#text}) /2 ))
  6. printf "\n\n"
  7. echo "============================================================================"
  8. echo "============================================================================"
  9. printf "%*s\n" ${spacing} "${text}"
  10. echo "============================================================================"
  11. echo "============================================================================"
  12. printf "\n\n"
  13. set -x
  14. }
  15. function check_python38_path() {
  16. export python38_bin="$PYTHON38_PATH/bin/python3.8"
  17. if [ ! -e "$python38_bin" ]; then
  18. echo "Python38 bin does not exists at " $python38_bin
  19. exit 1
  20. fi
  21. export pip38_bin="$PYTHON38_PATH/bin/pip3.8"
  22. }
  23. function check_python39_path() {
  24. export python39_bin="$PYTHON39_PATH/bin/python3.9"
  25. if [ ! -e "$python39_bin" ]; then
  26. echo "Python39 bin does not exists at " $python38_bin
  27. exit 1
  28. fi
  29. export pip39_bin="$PYTHON39_PATH/bin/pip3.9"
  30. }
  31. function check_sqlite3() {
  32. export sqlit3_bin="$SQLITE3_PATH"
  33. if [ ! -e "$sqlit3_bin" ]; then
  34. echo "sqlit3 bin does not exists at " $sqlit3_bin
  35. exit 1
  36. fi
  37. }
  38. function redhat7_ppc_install() {
  39. if [[ $FORCEINSTALL -eq 1 ]]; then
  40. # pre-req install
  41. sudo -- sh -c 'yum install -y cyrus-sasl-gssapi \
  42. cyrus-sasl-plain \
  43. java-11-openjdk \
  44. java-11-openjdk-devel \
  45. java-11-openjdk-headless \
  46. krb5-workstation \
  47. libpcap \
  48. ncurses-devel \
  49. nmap-ncat \
  50. xmlsec1 \
  51. xmlsec1-openssl \
  52. unzip'
  53. # NODEJS 14 install
  54. sudo -- sh -c 'yum install -y rh-nodejs14-runtime-3.6-1.el7.ppc64le.rpm \
  55. rh-nodejs14-npm-6.14.15-14.18.2.1.el7.ppc64le.rpm \
  56. rh-nodejs14-nodejs-14.18.2-1.el7.ppc64le.rpm'
  57. # sqlite3 install
  58. sudo TOOLS_HOME=${TOOLS_HOME} -- sh -c 'mkdir -p ${TOOLS_HOME} && \
  59. cd ${TOOLS_HOME} && \
  60. curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  61. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  62. cd sqlite-autoconf-3350500 && \
  63. ./configure --prefix=${TOOLS_HOME}/sqlite && make && make install'
  64. export LD_LIBRARY_PATH=${TOOLS_HOME}/sqlite/lib:/usr/local/lib:$LD_LIBRARY_PATH
  65. # python3.8 re install for sqlite3 3.35.5 or higher version
  66. sudo LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_LIBRARY_PATH \
  67. LD_RUN_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_RUN_PATH \
  68. -- sh -c 'curl -o Python-3.8.13.tgz https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz && \
  69. tar zxvf Python-3.8.13.tgz && \
  70. cd Python-3.8.13 && \
  71. ./configure --enable-shared --prefix=/opt/cloudera/cm-agent && \
  72. make install'
  73. # Pip modules install
  74. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable'
  75. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  76. fi
  77. }
  78. function redhat8_ppc_install() {
  79. if [[ $FORCEINSTALL -eq 1 ]]; then
  80. # pre-req install
  81. sudo -- sh -c 'yum install -y \
  82. python38 \
  83. python38-libs \
  84. python38-devel \
  85. python38-numpy \
  86. python38-PyMySQL \
  87. python38-cryptography \
  88. python38-cffi \
  89. python38-psycopg2 \
  90. python38-Cython \
  91. python38-lxml \
  92. java-11-openjdk-devel \
  93. java-11-openjdk-headless \
  94. krb5-workstation \
  95. nmap-ncat \
  96. xmlsec1 \
  97. xmlsec1-openssl \
  98. libss \
  99. ncurses-devel'
  100. # MySQLdb install
  101. sudo -- sh -c 'yum install -y python3-mysqlclient'
  102. # NODEJS 14 install
  103. sudo -- sh -c 'yum install -y nodejs npm'
  104. # Pip modules install
  105. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  106. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  107. # sqlite3 install
  108. sudo TOOLS_HOME=${TOOLS_HOME} -- sh -c 'mkdir -p ${TOOLS_HOME} && \
  109. cd ${TOOLS_HOME} && \
  110. curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  111. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  112. cd sqlite-autoconf-3350500 && \
  113. ./configure --prefix=${TOOLS_HOME}/sqlite && make && make install'
  114. export LD_LIBRARY_PATH=${TOOLS_HOME}/sqlite/lib:/usr/local/lib:$LD_LIBRARY_PATH
  115. fi
  116. }
  117. function sles12_install() {
  118. if [[ $FORCEINSTALL -eq 1 ]]; then
  119. # pre-req install
  120. sudo -- sh -c 'zypper install -y cyrus-sasl-gssapi \
  121. cyrus-sasl-plain \
  122. java-11-openjdk \
  123. java-11-openjdk-devel \
  124. java-11-openjdk-headless \
  125. krb5-client pam_krb5 krb5-appl-clients krb5-plugin-kdb-ldap \
  126. libpcap \
  127. ncurses-devel \
  128. nmap \
  129. xmlsec1 xmlsec1-devel xmlsec1-openssl-devel'
  130. # MySQLdb install
  131. sudo -- sh -c 'zypper install -y libmysqlclient-devel libmysqlclient18 libmysqld18 libmysqld-devel'
  132. # NODEJS 14 install
  133. sudo -- sh -c 'zypper install -y npm14 nodejs14'
  134. # Pip modules install
  135. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  136. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  137. # sqlite3 install
  138. sudo -- sh -c 'curl --insecure -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  139. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  140. cd sqlite-autoconf-3350500 && \
  141. ./configure --prefix=/usr/local/ && make && make install'
  142. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  143. fi
  144. }
  145. function centos7_install() {
  146. if [[ $FORCEINSTALL -eq 1 ]]; then
  147. # pre-req install
  148. sudo -- sh -c 'yum install -y cyrus-sasl-gssapi \
  149. cyrus-sasl-plain \
  150. java-11-openjdk \
  151. java-11-openjdk-devel \
  152. java-11-openjdk-headless \
  153. krb5-workstation \
  154. libpcap \
  155. ncurses-devel \
  156. nmap-ncat \
  157. xmlsec1 \
  158. xmlsec1-openssl \
  159. unzip'
  160. # MySQLdb install
  161. sudo -- sh -c 'curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm && \
  162. rpm -ivh mysql80-community-release-el7-5.noarch.rpm && \
  163. yum install -y mysql-community-libs mysql-community-client-plugins mysql-community-common'
  164. # NODEJS 14 install
  165. sudo -- sh -c 'yum install -y rh-nodejs14-nodejs'
  166. # sqlite3 install
  167. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  168. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  169. cd sqlite-autoconf-3350500 && \
  170. ./configure --prefix=/usr/local/ && make && make install'
  171. # python3.8 re install for sqlite3 3.35.5 or higher version
  172. sudo LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_LIBRARY_PATH \
  173. LD_RUN_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_RUN_PATH \
  174. -- sh -c 'curl -o Python-3.8.13.tgz https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz && \
  175. tar zxvf Python-3.8.13.tgz && \
  176. cd Python-3.8.13 && \
  177. ./configure --enable-shared --prefix=/opt/cloudera/cm-agent && \
  178. make install'
  179. # Pip modules install
  180. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  181. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  182. fi
  183. }
  184. function redhat8_install() {
  185. if [[ $FORCEINSTALL -eq 1 ]]; then
  186. # pre-req install
  187. sudo -- sh -c 'yum install -y \
  188. java-11-openjdk \
  189. java-11-openjdk-devel \
  190. java-11-openjdk-headless \
  191. krb5-workstation \
  192. ncurses-devel \
  193. nmap-ncat \
  194. xmlsec1 \
  195. xmlsec1-openssl \
  196. libss \
  197. ncurses-c++-libs'
  198. # MySQLdb install
  199. sudo -- sh -c 'yum install -y python3-mysqlclient'
  200. # NODEJS 14 install
  201. sudo -- sh -c 'curl -sL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs'
  202. # Pip modules install
  203. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  204. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  205. # sqlite3 install
  206. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  207. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  208. cd sqlite-autoconf-3350500 && \
  209. ./configure --prefix=/usr/local/ && make && make install'
  210. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  211. fi
  212. }
  213. function ubuntu18_install() {
  214. if [[ $FORCEINSTALL -eq 1 ]]; then
  215. # pre-req install
  216. sudo -- sh -c 'DEBIAN_FRONTEND=noninteractive apt -qq -y install \
  217. krb5-user \
  218. krb5-kdc \
  219. krb5-config \
  220. libkrb5-dev'
  221. sudo -- sh -c 'apt -y install \
  222. ldap-utils \
  223. libpython3.8-dev \
  224. libpython3.8-minimal \
  225. libpython3.8-stdlib \
  226. libxmlsec1 \
  227. libxmlsec1-openssl \
  228. netcat \
  229. nmap \
  230. python3-asn1crypto \
  231. python3-cffi-backend \
  232. python3-crypto \
  233. python3-cryptography \
  234. python3-keyring \
  235. python3-psycopg2 \
  236. python3-setuptools \
  237. python3-wheel \
  238. python3.8-venv \
  239. zlibc'
  240. # MySQLdb install
  241. # It is pre-installed
  242. # NODEJS 14 install
  243. sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && \
  244. apt -y install nodejs'
  245. # Pip modules install
  246. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  247. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  248. # sqlite3 install
  249. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  250. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  251. cd sqlite-autoconf-3350500 && \
  252. ./configure --prefix=/usr/local/ && make && make install'
  253. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  254. fi
  255. }
  256. function ubuntu20_install() {
  257. if [[ $FORCEINSTALL -eq 1 ]]; then
  258. # pre-req install
  259. sudo -- sh -c 'DEBIAN_FRONTEND=noninteractive apt -qq -y install \
  260. krb5-user \
  261. krb5-kdc \
  262. krb5-config \
  263. libkrb5-dev'
  264. sudo -- sh -c 'apt -y install \
  265. ldap-utils \
  266. libpython3.8-dev \
  267. libpython3.8-minimal \
  268. libpython3.8-stdlib \
  269. libxmlsec1 \
  270. libxmlsec1-openssl \
  271. netcat \
  272. nmap \
  273. python-asn1crypto \
  274. python3-crypto \
  275. python3-cryptography \
  276. python3-keyring \
  277. python3-psycopg2 \
  278. python3-setuptools \
  279. python3-wheel \
  280. python3.8-venv \
  281. zlibc \
  282. openssl \
  283. sudo \
  284. tar \
  285. util-linux'
  286. # MySQLdb install
  287. # It is pre-installed
  288. # NODEJS 14 install
  289. sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && \
  290. apt -y install nodejs'
  291. # Pip modules install
  292. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  293. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  294. # sqlite3 install
  295. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  296. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  297. cd sqlite-autoconf-3350500 && \
  298. ./configure --prefix=/usr/local/ && make && make install'
  299. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  300. fi
  301. }
  302. function redhat9_install() {
  303. if [[ $FORCEINSTALL -eq 1 ]]; then
  304. # pre-req install
  305. sudo -- sh -c 'yum install -y \
  306. java-11-openjdk \
  307. java-11-openjdk-devel \
  308. java-11-openjdk-headless \
  309. krb5-workstation \
  310. ncurses-devel \
  311. nmap-ncat \
  312. xmlsec1 \
  313. xmlsec1-openssl \
  314. libss \
  315. ncurses-c++-libs'
  316. # MySQLdb install
  317. sudo -- sh -c 'yum install -y python3-mysqlclient'
  318. # NODEJS 14 install
  319. sudo -- sh -c 'curl -sL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs'
  320. # Pip modules install
  321. sudo pip39_bin=${pip39_bin} -- sh -c '${pip39_bin} install virtualenv virtualenv-make-relocatable mysqlclient'
  322. sudo pip39_bin=${pip39_bin} -- sh -c 'ln -fs ${pip39_bin} $(dirname ${pip39_bin})/pip'
  323. # sqlite3 install
  324. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  325. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  326. cd sqlite-autoconf-3350500 && \
  327. ./configure --prefix=/usr/local/ && make && make install'
  328. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  329. fi
  330. }