| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619 |
- #!/usr/bin/env bash
- function big_console_header() {
- set +x
- local text="$*"
- local spacing=$(( (75+${#text}) /2 ))
- printf "\n\n"
- echo "============================================================================"
- echo "============================================================================"
- printf "%*s\n" ${spacing} "${text}"
- echo "============================================================================"
- echo "============================================================================"
- printf "\n\n"
- set -x
- }
- function check_python38_path() {
- export python38_bin="$PYTHON38_PATH/bin/python3.8"
- if [ ! -e "$python38_bin" ]; then
- echo "Python38 bin does not exists at " $python38_bin
- exit 1
- fi
- export pip_bin="$PYTHON38_PATH/bin/pip3.8"
- }
- function check_python39_path() {
- export python39_bin="$PYTHON39_PATH/bin/python3.9"
- if [ ! -e "$python39_bin" ]; then
- echo "Python39 bin does not exists at " $python39_bin
- exit 1
- fi
- export pip_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 pip_bin="$PYTHON310_PATH/bin/pip3.10"
- }
- function check_python311_path() {
- export python311_bin="$PYTHON311_PATH/bin/python3.11"
- if [ ! -e "$python311_bin" ]; then
- echo "Python311 bin does not exists at " $python311_bin
- exit 1
- fi
- export pip_bin="$PYTHON311_PATH/bin/pip3.11"
- }
- function check_sqlite3() {
- export sqlit3_bin="$SQLITE3_PATH"
- if [ ! -e "$sqlit3_bin" ]; then
- echo "sqlit3 bin does not exists at " $sqlit3_bin
- exit 1
- fi
- }
- function redhat7_ppc_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'yum install -y cyrus-sasl-gssapi \
- cyrus-sasl-plain \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- libpcap \
- ncurses-devel \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- unzip'
- # NODEJS 16 install
- # Upgrading to node-v16 because of the following CVE's in node-v14 "CVE-2021-3450, CVE-2021-44531, CVE-2023-32004, CVE-2023-32006"
- # Node-v20-LTS is not supported by old OS'es - Redhat7_ppc, Centos7, Ubuntu18, Sles12. So upgrading to node-v16
- sudo -- sh -c 'curl -fsSL https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-ppc64le.tar.gz -o node-v16.20.2-linux-ppc64le.tar.gz && \
- mkdir -p /usr/local/lib/nodejs && \
- tar -xzf node-v16.20.2-linux-ppc64le.tar.gz -C /usr/local/lib/nodejs'
- echo 'export PATH=/usr/local/lib/nodejs/node-v16.20.2-linux-ppc64le/bin:$PATH' >> ~/.bashrc
- source ~/.bashrc
- # sqlite3 install
- sudo TOOLS_HOME=${TOOLS_HOME} -- sh -c 'mkdir -p ${TOOLS_HOME} && \
- cd ${TOOLS_HOME} && \
- curl -o sqlite-autoconf-3350500.tar.gz https://sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
- tar zxvf sqlite-autoconf-3350500.tar.gz && \
- cd sqlite-autoconf-3350500 && \
- ./configure --prefix=${TOOLS_HOME}/sqlite && make && make install'
- export LD_LIBRARY_PATH=${TOOLS_HOME}/sqlite/lib:/usr/local/lib:$LD_LIBRARY_PATH
- # python3.8 re install for sqlite3 3.35.5 or higher version
- sudo LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_LIBRARY_PATH \
- LD_RUN_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_RUN_PATH \
- -- sh -c 'curl -o Python-3.8.13.tgz https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz && \
- tar zxvf Python-3.8.13.tgz && \
- cd Python-3.8.13 && \
- ./configure --enable-shared --prefix=/opt/cloudera/cm-agent && \
- make install'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}''
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- fi
- }
- function redhat8_ppc_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'yum install -y \
- python38 \
- python38-libs \
- python38-devel \
- python38-numpy \
- python38-PyMySQL \
- python38-cryptography \
- python38-cffi \
- python38-psycopg2 \
- python38-Cython \
- python38-lxml \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- libss \
- ncurses-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'yum install -y python3-mysqlclient'
- # NODEJS install
- sudo sh -c 'curl -fsSL https://nodejs.org/dist/v20.11.0/node-v20.11.0-linux-ppc64le.tar.gz -o node-v20.11.0-linux-ppc64le.tar.gz && \
- mkdir -p /usr/local/lib/nodejs && \
- tar -xzf node-v20.11.0-linux-ppc64le.tar.gz -C /usr/local/lib/nodejs'
- echo 'export PATH=/usr/local/lib/nodejs/node-v20.11.0-linux-ppc64le/bin:$PATH' >> ~/.bashrc
- source ~/.bashrc
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo TOOLS_HOME=${TOOLS_HOME} -- sh -c 'mkdir -p ${TOOLS_HOME} && \
- cd ${TOOLS_HOME} && \
- curl -o sqlite-autoconf-3350500.tar.gz https://sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
- tar zxvf sqlite-autoconf-3350500.tar.gz && \
- cd sqlite-autoconf-3350500 && \
- ./configure --prefix=${TOOLS_HOME}/sqlite && make && make install'
- export LD_LIBRARY_PATH=${TOOLS_HOME}/sqlite/lib:/usr/local/lib:$LD_LIBRARY_PATH
- fi
- }
- function redhat9_ppc_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'yum install -y \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- libss \
- ncurses-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'yum install -y python3-mysqlclient'
- # NODEJS install
- sudo sh -c 'curl -fsSL https://nodejs.org/dist/v20.11.0/node-v20.11.0-linux-ppc64le.tar.gz -o node-v20.11.0-linux-ppc64le.tar.gz && \
- mkdir -p /usr/local/lib/nodejs && \
- tar -xzf node-v20.11.0-linux-ppc64le.tar.gz -C /usr/local/lib/nodejs'
- echo 'export PATH=/usr/local/lib/nodejs/node-v20.11.0-linux-ppc64le/bin:$PATH' >> ~/.bashrc
- source ~/.bashrc
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo TOOLS_HOME=${TOOLS_HOME} -- sh -c 'mkdir -p ${TOOLS_HOME} && \
- cd ${TOOLS_HOME} && \
- curl -o sqlite-autoconf-3350500.tar.gz https://sqlite.org/2021/sqlite-autoconf-3350500.tar.gz && \
- tar zxvf sqlite-autoconf-3350500.tar.gz && \
- cd sqlite-autoconf-3350500 && \
- ./configure --prefix=${TOOLS_HOME}/sqlite && make && make install'
- export LD_LIBRARY_PATH=${TOOLS_HOME}/sqlite/lib:/usr/local/lib:$LD_LIBRARY_PATH
- fi
- }
- function sles12_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'zypper refresh'
- sudo -- sh -c 'zypper install -y cyrus-sasl-gssapi \
- cyrus-sasl-plain \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-client pam_krb5 krb5-appl-clients krb5-plugin-kdb-ldap \
- libpcap \
- ncurses-devel \
- nmap \
- python3-devel \
- postgresql-server-devel \
- xmlsec1 xmlsec1-devel xmlsec1-openssl-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'zypper install -y libmysqlclient-devel libmysqlclient18 libmysqld18 libmysqld-devel'
- # NODEJS 16 install
- # Upgrading to node-v16 because of the following CVE's in node-v14 "CVE-2021-3450, CVE-2021-44531, CVE-2023-32004, CVE-2023-32006"
- # Node-v20-LTS is not supported by old OS'es - Redhat7_ppc, Centos7, Ubuntu18, Sles12. So upgrading to node-v16
- sudo -- sh -c 'zypper install -y npm14 nodejs16'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl --insecure -o sqlite-autoconf-3350500.tar.gz https://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 sles15_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'zypper refresh'
- sudo -- sh -c 'zypper install -y cyrus-sasl-gssapi \
- cyrus-sasl-plain \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-client pam_krb5 krb5-plugin-kdb-ldap \
- libpcap1 \
- ncurses-devel \
- nmap \
- postgresql-server-devel \
- xmlsec1 xmlsec1-devel xmlsec1-openssl-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'zypper install -y libmariadb-devel mariadb-client python3-mysqlclient'
- # NODEJS 18 install
- sudo -- sh -c 'zypper install -y nodejs18 npm20'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl --insecure -o sqlite-autoconf-3450000.tar.gz https://sqlite.org/2024/sqlite-autoconf-3450000.tar.gz && \
- tar zxvf sqlite-autoconf-3450000.tar.gz && \
- cd sqlite-autoconf-3450000 && \
- ./configure --prefix=/usr/local/ && make && make install'
- export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
- fi
- }
- function centos7_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'yum install -y cyrus-sasl-gssapi \
- cyrus-sasl-plain \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- libpcap \
- ncurses-devel \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- unzip \
- python3-devel \
- postgresql-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'curl -sSLO https://cloudera-build-us-west-1.vpc.cloudera.com/s3/ARTIFACTS/mysql80-community-release-el7-11.noarch.rpm && \
- rpm -ivh mysql80-community-release-el7-11.noarch.rpm && \
- yum install -y mysql-community-libs mysql-community-client-plugins mysql-community-common'
- # NODEJS 16 install
- # Upgrading to node-v16 because of the following CVE's in node-v14 "CVE-2021-3450, CVE-2021-44531, CVE-2023-32004, CVE-2023-32006"
- # Node-v20-LTS is not supported by old OS'es - Redhat7_ppc, Centos7, Ubuntu18, Sles12. So upgrading to node-v16
- sudo -- sh -c 'curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - && \
- yum install -y nodejs npm'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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'
- # python3.8 re install for sqlite3 3.35.5 or higher version
- sudo LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_LIBRARY_PATH \
- LD_RUN_PATH=/usr/local/lib:$ORACLE_INSTANTCLIENT19_PATH:$LD_RUN_PATH \
- -- sh -c 'curl -o Python-3.8.13.tgz https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz && \
- tar zxvf Python-3.8.13.tgz && \
- cd Python-3.8.13 && \
- ./configure --enable-shared --prefix=/opt/cloudera/cm-agent && \
- make install'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- fi
- }
- function redhat8_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'yum install -y \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- ncurses-devel \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- libss \
- ncurses-c++-libs \
- python3-devel \
- postgresql-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'yum install -y python3-mysqlclient'
- # NODEJS 20 install
- sudo -- sh -c 'curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - && \
- yum install -y nodejs'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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 redhat8_arm64_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'yum install -y \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- ncurses-devel \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- libss \
- ncurses-c++-libs'
- # MySQLdb install
- sudo -- sh -c 'yum install -y python3-mysqlclient'
- # NODEJS 20 install
- sudo -- sh -c 'curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - && \
- yum install -y nodejs'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2-binary==2.9.6'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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 ubuntu18_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- # pre-req install
- sudo -- sh -c 'apt-get update'
- 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.8-dev \
- libpython3.8-minimal \
- libpython3.8-stdlib \
- libxmlsec1 \
- libxmlsec1-openssl \
- netcat \
- nmap \
- python3-asn1crypto \
- python3-cffi-backend \
- python3-crypto \
- python3-cryptography \
- python3-keyring \
- python3-psycopg2 \
- python3-setuptools \
- python3-wheel \
- python3.8-venv \
- python3-dev \
- libpq-dev \
- zlibc'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- # It is pre-installed
- # NODEJS 16 install
- # Upgrading to node-v16 because of the following CVE's in node-v14 "CVE-2021-3450, CVE-2021-44531, CVE-2023-32004, CVE-2023-32006"
- # Node-v20-LTS is not supported by old OS'es - Redhat7_ppc, Centos7, Ubuntu18, Sles12. So upgrading to node-v16
- sudo -- sh -c 'curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - && \
- apt -y install nodejs'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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 ubuntu20_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.8-dev \
- libpython3.8-minimal \
- libpython3.8-stdlib \
- libxmlsec1 \
- libxmlsec1-openssl \
- libpq-dev \
- netcat \
- nmap \
- python-asn1crypto \
- python3-crypto \
- python3-cryptography \
- python3-keyring \
- python3-psycopg2 \
- python3-setuptools \
- python3-wheel \
- python3.8-venv \
- zlibc \
- openssl \
- sudo \
- tar \
- util-linux'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # 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 pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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 ubuntu22_install() {
- if [[ $FORCEINSTALL -eq 1 ]]; then
- sudo -- sh -c 'apt update'
- # Add deadsnakes PPA for Python 3.8
- sudo -- sh -c 'add-apt-repository ppa:deadsnakes/ppa -y'
- sudo -- sh -c 'apt update'
- # 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.8-dev \
- libpython3.8-minimal \
- libpython3.8-stdlib \
- libxmlsec1 \
- libxmlsec1-openssl \
- libpq-dev \
- netcat \
- nmap \
- python3-asn1crypto \
- python3-cryptography \
- python3-keyring \
- python3-psycopg2 \
- python3-setuptools \
- python3-wheel \
- python3.8-venv \
- openssl \
- sudo \
- tar \
- util-linux'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # 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 pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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
- sudo -- sh -c 'yum install -y \
- java-11-openjdk \
- java-11-openjdk-devel \
- java-11-openjdk-headless \
- krb5-workstation \
- ncurses-devel \
- nmap-ncat \
- xmlsec1 \
- xmlsec1-openssl \
- libss \
- ncurses-c++-libs \
- postgresql-devel'
- # Ensure pg_config is available
- export PG_CONFIG=$(which pg_config)
- if [ -z "$PG_CONFIG" ]; then
- echo "Error: pg_config not found. Ensure PostgreSQL development libraries are installed."
- exit 1
- fi
- echo "PG_CONFIG is set to $PG_CONFIG"
- # MySQLdb install
- sudo -- sh -c 'yum install -y python3-mysqlclient'
- # NODEJS 20 install
- sudo -- sh -c 'curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - && \
- yum install -y nodejs'
- # Pip modules install
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install virtualenv=='${VIRTUAL_ENV_VERSION}' virtualenv-make-relocatable=='${VIRTUAL_ENV_RELOCATABLE_VERSION}' mysqlclient==2.1.1'
- sudo pip_bin=${pip_bin} -- sh -c '${pip_bin} install psycopg2==2.9.6 --global-option=build_ext --global-option="--pg-config=$PG_CONFIG"'
- sudo pip_bin=${pip_bin} -- sh -c 'ln -fs ${pip_bin} $(dirname ${pip_bin})/pip'
- # sqlite3 install
- sudo -- sh -c 'curl -o sqlite-autoconf-3350500.tar.gz https://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
- }
|