build_hue_common.sh 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  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==2.1.1'
  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 redhat9_ppc_install() {
  118. if [[ $FORCEINSTALL -eq 1 ]]; then
  119. # pre-req install
  120. sudo -- sh -c 'yum install -y \
  121. java-11-openjdk-devel \
  122. java-11-openjdk-headless \
  123. krb5-workstation \
  124. nmap-ncat \
  125. xmlsec1 \
  126. xmlsec1-openssl \
  127. libss \
  128. ncurses-devel'
  129. # MySQLdb install
  130. sudo -- sh -c 'yum install -y python3-mysqlclient'
  131. # NODEJS 14 install
  132. sudo -- sh -c 'yum install -y nodejs npm'
  133. # Pip modules install
  134. sudo pip39_bin=${pip39_bin} -- sh -c '${pip39_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  135. sudo pip39_bin=${pip39_bin} -- sh -c 'ln -fs ${pip39_bin} $(dirname ${pip39_bin})/pip'
  136. # sqlite3 install
  137. sudo TOOLS_HOME=${TOOLS_HOME} -- sh -c 'mkdir -p ${TOOLS_HOME} && \
  138. cd ${TOOLS_HOME} && \
  139. curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  140. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  141. cd sqlite-autoconf-3350500 && \
  142. ./configure --prefix=${TOOLS_HOME}/sqlite && make && make install'
  143. export LD_LIBRARY_PATH=${TOOLS_HOME}/sqlite/lib:/usr/local/lib:$LD_LIBRARY_PATH
  144. fi
  145. }
  146. function sles12_install() {
  147. if [[ $FORCEINSTALL -eq 1 ]]; then
  148. # pre-req install
  149. sudo -- sh -c 'zypper install -y cyrus-sasl-gssapi \
  150. cyrus-sasl-plain \
  151. java-11-openjdk \
  152. java-11-openjdk-devel \
  153. java-11-openjdk-headless \
  154. krb5-client pam_krb5 krb5-appl-clients krb5-plugin-kdb-ldap \
  155. libpcap \
  156. ncurses-devel \
  157. nmap \
  158. xmlsec1 xmlsec1-devel xmlsec1-openssl-devel'
  159. # MySQLdb install
  160. sudo -- sh -c 'zypper install -y libmysqlclient-devel libmysqlclient18 libmysqld18 libmysqld-devel'
  161. # NODEJS 14 install
  162. sudo -- sh -c 'zypper install -y npm14 nodejs14'
  163. # Pip modules install
  164. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  165. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  166. # sqlite3 install
  167. sudo -- sh -c 'curl --insecure -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. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  172. fi
  173. }
  174. function centos7_install() {
  175. if [[ $FORCEINSTALL -eq 1 ]]; then
  176. # pre-req install
  177. sudo -- sh -c 'yum install -y cyrus-sasl-gssapi \
  178. cyrus-sasl-plain \
  179. java-11-openjdk \
  180. java-11-openjdk-devel \
  181. java-11-openjdk-headless \
  182. krb5-workstation \
  183. libpcap \
  184. ncurses-devel \
  185. nmap-ncat \
  186. xmlsec1 \
  187. xmlsec1-openssl \
  188. unzip'
  189. # MySQLdb install
  190. sudo -- sh -c 'curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm && \
  191. rpm -ivh mysql80-community-release-el7-5.noarch.rpm && \
  192. yum install -y mysql-community-libs mysql-community-client-plugins mysql-community-common'
  193. # NODEJS 14 install
  194. sudo -- sh -c 'yum install -y rh-nodejs14-nodejs'
  195. # sqlite3 install
  196. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  197. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  198. cd sqlite-autoconf-3350500 && \
  199. ./configure --prefix=/usr/local/ && make && make install'
  200. # python3.8 re install for sqlite3 3.35.5 or higher version
  201. sudo LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_LIBRARY_PATH \
  202. LD_RUN_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_RUN_PATH \
  203. -- sh -c 'curl -o Python-3.8.13.tgz https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz && \
  204. tar zxvf Python-3.8.13.tgz && \
  205. cd Python-3.8.13 && \
  206. ./configure --enable-shared --prefix=/opt/cloudera/cm-agent && \
  207. make install'
  208. # Pip modules install
  209. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  210. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  211. fi
  212. }
  213. function redhat8_install() {
  214. if [[ $FORCEINSTALL -eq 1 ]]; then
  215. # pre-req install
  216. sudo -- sh -c 'yum install -y \
  217. java-11-openjdk \
  218. java-11-openjdk-devel \
  219. java-11-openjdk-headless \
  220. krb5-workstation \
  221. ncurses-devel \
  222. nmap-ncat \
  223. xmlsec1 \
  224. xmlsec1-openssl \
  225. libss \
  226. ncurses-c++-libs'
  227. # MySQLdb install
  228. sudo -- sh -c 'yum install -y python3-mysqlclient'
  229. # NODEJS 14 install
  230. sudo -- sh -c 'curl -sL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs'
  231. # Pip modules install
  232. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  233. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  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 ubuntu18_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. python3-asn1crypto \
  260. python3-cffi-backend \
  261. python3-crypto \
  262. python3-cryptography \
  263. python3-keyring \
  264. python3-psycopg2 \
  265. python3-setuptools \
  266. python3-wheel \
  267. python3.8-venv \
  268. zlibc'
  269. # MySQLdb install
  270. # It is pre-installed
  271. # NODEJS 14 install
  272. sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && \
  273. apt -y install nodejs'
  274. # Pip modules install
  275. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  276. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  277. # sqlite3 install
  278. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  279. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  280. cd sqlite-autoconf-3350500 && \
  281. ./configure --prefix=/usr/local/ && make && make install'
  282. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  283. fi
  284. }
  285. function ubuntu20_install() {
  286. if [[ $FORCEINSTALL -eq 1 ]]; then
  287. # pre-req install
  288. sudo -- sh -c 'DEBIAN_FRONTEND=noninteractive apt -qq -y install \
  289. krb5-user \
  290. krb5-kdc \
  291. krb5-config \
  292. libkrb5-dev'
  293. sudo -- sh -c 'apt -y install \
  294. ldap-utils \
  295. libpython3.8-dev \
  296. libpython3.8-minimal \
  297. libpython3.8-stdlib \
  298. libxmlsec1 \
  299. libxmlsec1-openssl \
  300. netcat \
  301. nmap \
  302. python-asn1crypto \
  303. python3-crypto \
  304. python3-cryptography \
  305. python3-keyring \
  306. python3-psycopg2 \
  307. python3-setuptools \
  308. python3-wheel \
  309. python3.8-venv \
  310. zlibc \
  311. openssl \
  312. sudo \
  313. tar \
  314. util-linux'
  315. # MySQLdb install
  316. # It is pre-installed
  317. # NODEJS 14 install
  318. sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && \
  319. apt -y install nodejs'
  320. # Pip modules install
  321. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  322. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_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. }
  331. function redhat9_install() {
  332. if [[ $FORCEINSTALL -eq 1 ]]; then
  333. # pre-req install
  334. sudo -- sh -c 'yum install -y \
  335. java-11-openjdk \
  336. java-11-openjdk-devel \
  337. java-11-openjdk-headless \
  338. krb5-workstation \
  339. ncurses-devel \
  340. nmap-ncat \
  341. xmlsec1 \
  342. xmlsec1-openssl \
  343. libss \
  344. ncurses-c++-libs'
  345. # MySQLdb install
  346. sudo -- sh -c 'yum install -y python3-mysqlclient'
  347. # NODEJS 14 install
  348. sudo -- sh -c 'curl -sL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs'
  349. # Pip modules install
  350. sudo pip39_bin=${pip39_bin} -- sh -c '${pip39_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  351. sudo pip39_bin=${pip39_bin} -- sh -c 'ln -fs ${pip39_bin} $(dirname ${pip39_bin})/pip'
  352. # sqlite3 install
  353. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  354. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  355. cd sqlite-autoconf-3350500 && \
  356. ./configure --prefix=/usr/local/ && make && make install'
  357. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  358. fi
  359. }