build_hue_common.sh 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  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 sles15_install() {
  175. if [[ $FORCEINSTALL -eq 1 ]]; then
  176. # pre-req install
  177. sudo -- sh -c 'zypper 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-client pam_krb5 krb5-plugin-kdb-ldap \
  183. libpcap \
  184. ncurses-devel \
  185. nmap \
  186. xmlsec1 xmlsec1-devel xmlsec1-openssl-devel'
  187. # MySQLdb install
  188. sudo -- sh -c 'zypper install -y libmariadb-devel mariadb-client python3-mysqlclient'
  189. # NODEJS 14 install
  190. sudo -- sh -c 'zypper install -y nodejs18 npm16'
  191. # Pip modules install
  192. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  193. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  194. # sqlite3 install
  195. sudo -- sh -c 'curl --insecure -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  196. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  197. cd sqlite-autoconf-3350500 && \
  198. ./configure --prefix=/usr/local/ && make && make install'
  199. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  200. fi
  201. }
  202. function centos7_install() {
  203. if [[ $FORCEINSTALL -eq 1 ]]; then
  204. # pre-req install
  205. sudo -- sh -c 'yum install -y cyrus-sasl-gssapi \
  206. cyrus-sasl-plain \
  207. java-11-openjdk \
  208. java-11-openjdk-devel \
  209. java-11-openjdk-headless \
  210. krb5-workstation \
  211. libpcap \
  212. ncurses-devel \
  213. nmap-ncat \
  214. xmlsec1 \
  215. xmlsec1-openssl \
  216. unzip'
  217. # MySQLdb install
  218. sudo -- sh -c 'curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm && \
  219. rpm -ivh mysql80-community-release-el7-5.noarch.rpm && \
  220. yum install -y mysql-community-libs mysql-community-client-plugins mysql-community-common'
  221. # NODEJS 14 install
  222. sudo -- sh -c 'yum install -y rh-nodejs14-nodejs'
  223. # sqlite3 install
  224. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  225. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  226. cd sqlite-autoconf-3350500 && \
  227. ./configure --prefix=/usr/local/ && make && make install'
  228. # python3.8 re install for sqlite3 3.35.5 or higher version
  229. sudo LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_LIBRARY_PATH \
  230. LD_RUN_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_RUN_PATH \
  231. -- sh -c 'curl -o Python-3.8.13.tgz https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz && \
  232. tar zxvf Python-3.8.13.tgz && \
  233. cd Python-3.8.13 && \
  234. ./configure --enable-shared --prefix=/opt/cloudera/cm-agent && \
  235. make install'
  236. # Pip modules install
  237. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  238. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  239. fi
  240. }
  241. function redhat8_install() {
  242. if [[ $FORCEINSTALL -eq 1 ]]; then
  243. # pre-req install
  244. sudo -- sh -c 'yum install -y \
  245. java-11-openjdk \
  246. java-11-openjdk-devel \
  247. java-11-openjdk-headless \
  248. krb5-workstation \
  249. ncurses-devel \
  250. nmap-ncat \
  251. xmlsec1 \
  252. xmlsec1-openssl \
  253. libss \
  254. ncurses-c++-libs'
  255. # MySQLdb install
  256. sudo -- sh -c 'yum install -y python3-mysqlclient'
  257. # NODEJS 14 install
  258. sudo -- sh -c 'curl -sL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs'
  259. # Pip modules install
  260. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  261. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  262. # sqlite3 install
  263. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  264. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  265. cd sqlite-autoconf-3350500 && \
  266. ./configure --prefix=/usr/local/ && make && make install'
  267. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  268. fi
  269. }
  270. function ubuntu18_install() {
  271. if [[ $FORCEINSTALL -eq 1 ]]; then
  272. # pre-req install
  273. sudo -- sh -c 'DEBIAN_FRONTEND=noninteractive apt -qq -y install \
  274. krb5-user \
  275. krb5-kdc \
  276. krb5-config \
  277. libkrb5-dev'
  278. sudo -- sh -c 'apt -y install \
  279. ldap-utils \
  280. libpython3.8-dev \
  281. libpython3.8-minimal \
  282. libpython3.8-stdlib \
  283. libxmlsec1 \
  284. libxmlsec1-openssl \
  285. netcat \
  286. nmap \
  287. python3-asn1crypto \
  288. python3-cffi-backend \
  289. python3-crypto \
  290. python3-cryptography \
  291. python3-keyring \
  292. python3-psycopg2 \
  293. python3-setuptools \
  294. python3-wheel \
  295. python3.8-venv \
  296. zlibc'
  297. # MySQLdb install
  298. # It is pre-installed
  299. # NODEJS 14 install
  300. sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && \
  301. apt -y install nodejs'
  302. # Pip modules install
  303. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  304. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  305. # sqlite3 install
  306. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  307. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  308. cd sqlite-autoconf-3350500 && \
  309. ./configure --prefix=/usr/local/ && make && make install'
  310. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  311. fi
  312. }
  313. function ubuntu20_install() {
  314. if [[ $FORCEINSTALL -eq 1 ]]; then
  315. # pre-req install
  316. sudo -- sh -c 'DEBIAN_FRONTEND=noninteractive apt -qq -y install \
  317. krb5-user \
  318. krb5-kdc \
  319. krb5-config \
  320. libkrb5-dev'
  321. sudo -- sh -c 'apt -y install \
  322. ldap-utils \
  323. libpython3.8-dev \
  324. libpython3.8-minimal \
  325. libpython3.8-stdlib \
  326. libxmlsec1 \
  327. libxmlsec1-openssl \
  328. netcat \
  329. nmap \
  330. python-asn1crypto \
  331. python3-crypto \
  332. python3-cryptography \
  333. python3-keyring \
  334. python3-psycopg2 \
  335. python3-setuptools \
  336. python3-wheel \
  337. python3.8-venv \
  338. zlibc \
  339. openssl \
  340. sudo \
  341. tar \
  342. util-linux'
  343. # MySQLdb install
  344. # It is pre-installed
  345. # NODEJS 14 install
  346. sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - && \
  347. apt -y install nodejs'
  348. # Pip modules install
  349. sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  350. sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
  351. # sqlite3 install
  352. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  353. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  354. cd sqlite-autoconf-3350500 && \
  355. ./configure --prefix=/usr/local/ && make && make install'
  356. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  357. fi
  358. }
  359. function redhat9_install() {
  360. if [[ $FORCEINSTALL -eq 1 ]]; then
  361. # pre-req install
  362. sudo -- sh -c 'yum install -y \
  363. java-11-openjdk \
  364. java-11-openjdk-devel \
  365. java-11-openjdk-headless \
  366. krb5-workstation \
  367. ncurses-devel \
  368. nmap-ncat \
  369. xmlsec1 \
  370. xmlsec1-openssl \
  371. libss \
  372. ncurses-c++-libs'
  373. # MySQLdb install
  374. sudo -- sh -c 'yum install -y python3-mysqlclient'
  375. # NODEJS 14 install
  376. sudo -- sh -c 'curl -sL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs'
  377. # Pip modules install
  378. sudo pip39_bin=${pip39_bin} -- sh -c '${pip39_bin} install virtualenv virtualenv-make-relocatable mysqlclient==2.1.1'
  379. sudo pip39_bin=${pip39_bin} -- sh -c 'ln -fs ${pip39_bin} $(dirname ${pip39_bin})/pip'
  380. # sqlite3 install
  381. sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
  382. tar zxvf sqlite-autoconf-3350500.tar.gz && \
  383. cd sqlite-autoconf-3350500 && \
  384. ./configure --prefix=/usr/local/ && make && make install'
  385. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  386. fi
  387. }