build_hue_common.sh 11 KB

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