Преглед изворни кода

[ubuntu22] Support Hue on ubuntu22 and sles15 with python3.10 (#3714)

Ayush Goyal пре 1 година
родитељ
комит
2fef72635c
2 измењених фајлова са 73 додато и 9 уклоњено
  1. 12 3
      tools/cloudera/build_hue_cloudera.sh
  2. 61 6
      tools/cloudera/build_hue_common.sh

+ 12 - 3
tools/cloudera/build_hue_cloudera.sh

@@ -49,10 +49,12 @@ function install_prerequisite() {
   fi
 
   export SQLITE3_PATH=${SQLITE3_PATH:-"$TOOLS_HOME/sqlite/sqlite3"}
-  if [[ $1 != "redhat9" && $1 != "redhat9_ppc" ]]; then
-    check_python38_path
-  else
+  if [[ $1 == "redhat9" || $1 == "redhat9_ppc" ]]; then
     check_python39_path
+  elif [[ $1 == "ubuntu22" || $1 == "sles15" ]]; then
+    check_python310_path
+  else
+    check_python38_path
   fi
   check_sqlite3
   if [[ $1 == "centos7" ]]; then
@@ -73,6 +75,8 @@ function install_prerequisite() {
     ubuntu20_install
   elif [[ $1 == "redhat9" ]]; then
     redhat9_install
+  elif [[ $1 == "ubuntu22" ]]; then
+    ubuntu22_install
   fi
 
 }
@@ -107,6 +111,11 @@ if [[ $DOCKEROS == "redhat9" || $DOCKEROS == "redhat9_ppc" ]]; then
   export PYTHON_VER=python3.9
   export SYS_PYTHON=$PYTHON39_PATH/bin/python3.9
   export PATH=$PYTHON39_PATH/bin:$PATH
+elif [[ $DOCKEROS == "ubuntu22" || $DOCKEROS == "sles15" ]]; then
+  export PYTHON_H=$PYTHON310_PATH/include/python3.10/Python.h
+  export PYTHON_VER=python3.10
+  export SYS_PYTHON=$PYTHON310_PATH/bin/python3.10
+  export PATH=$PYTHON310_PATH/bin:$PATH
 fi
 
 HUE_SRC=$(realpath $WORK_DIR/../..)

+ 61 - 6
tools/cloudera/build_hue_common.sh

@@ -26,12 +26,21 @@ function check_python38_path() {
 function check_python39_path() {
   export python39_bin="$PYTHON39_PATH/bin/python3.9"
   if [ ! -e "$python39_bin" ]; then
-    echo "Python39 bin does not exists at " $python38_bin
+    echo "Python39 bin does not exists at " $python39_bin
     exit 1
   fi
   export pip39_bin="$PYTHON39_PATH/bin/pip3.9"
 }
 
+function check_python310_path() {
+  export python310_bin="$PYTHON310_PATH/bin/python3.10"
+  if [ ! -e "$python310_bin" ]; then
+    echo "Python310 bin does not exists at " $python310_bin
+    exit 1
+  fi
+  export pip310_bin="$PYTHON310_PATH/bin/pip3.10"
+}
+
 function check_sqlite3() {
   export sqlit3_bin="$SQLITE3_PATH"
   if [ ! -e "$sqlit3_bin" ]; then
@@ -204,17 +213,17 @@ function sles15_install() {
       java-11-openjdk-devel \
       java-11-openjdk-headless \
       krb5-client pam_krb5 krb5-plugin-kdb-ldap \
-      libpcap \
+      libpcap1 \
       ncurses-devel \
       nmap \
       xmlsec1 xmlsec1-devel  xmlsec1-openssl-devel'
     # MySQLdb install
     sudo -- sh -c 'zypper install -y libmariadb-devel mariadb-client python3-mysqlclient'
-    # NODEJS 20 install
-    sudo -- sh -c 'zypper install -y nodejs18 npm16'
+    # NODEJS 18 install
+    sudo -- sh -c 'zypper install -y nodejs18 npm20'
     # Pip modules install
-    sudo pip38_bin=${pip38_bin} -- sh -c '${pip38_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
-    sudo pip38_bin=${pip38_bin} -- sh -c 'ln -fs ${pip38_bin} $(dirname ${pip38_bin})/pip'
+    sudo pip310_bin=${pip310_bin} -- sh -c '${pip310_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
+    sudo pip310_bin=${pip310_bin} -- sh -c 'ln -fs ${pip310_bin} $(dirname ${pip310_bin})/pip'
     # sqlite3 install
     sudo -- sh -c 'curl --insecure -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
         tar zxvf sqlite-autoconf-3350500.tar.gz && \
@@ -392,6 +401,52 @@ function ubuntu20_install() {
   fi
 }
 
+function ubuntu22_install() {
+    if [[ $FORCEINSTALL -eq 1 ]]; then
+    # pre-req install
+    sudo -- sh -c 'DEBIAN_FRONTEND=noninteractive apt -qq -y install  \
+        krb5-user \
+        krb5-kdc \
+        krb5-config \
+        libkrb5-dev'
+    sudo -- sh -c 'apt -y install \
+        ldap-utils \
+        libpython3.10-dev \
+        libpython3.10-minimal \
+        libpython3.10-stdlib \
+        libxmlsec1 \
+        libxmlsec1-openssl \
+        netcat \
+        nmap \
+        python3-asn1crypto \
+        python3-cryptography \
+        python3-keyring \
+        python3-psycopg2 \
+        python3-setuptools \
+        python3-wheel \
+        python3.10-venv \
+        openssl \
+        sudo \
+        tar \
+        util-linux'
+    # MySQLdb install
+    # It is pre-installed
+    # NODEJS 20 install
+    sudo -- sh -c 'apt-get install -y curl && \
+      curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && \
+      apt-get install -y nodejs'
+    # Pip modules install
+    sudo pip310_bin=${pip310_bin} -- sh -c '${pip310_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
+    sudo pip310_bin=${pip310_bin} -- sh -c 'ln -fs ${pip310_bin} $(dirname ${pip310_bin})/pip'
+    # sqlite3 install
+    sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
+        tar zxvf sqlite-autoconf-3350500.tar.gz && \
+        cd sqlite-autoconf-3350500 && \
+        ./configure --prefix=/usr/local/ && make && make install'
+    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
+  fi
+}
+
 function redhat9_install() {
   if [[ $FORCEINSTALL -eq 1 ]]; then
     # pre-req install