Github user zellerh commented on a diff in the pull request: https://github.com/apache/incubator-trafodion/pull/1353#discussion_r158091099 --- Diff: install/traf_checkset_env.sh --- @@ -0,0 +1,243 @@ +#!/bin/bash +# +# @@@ START COPYRIGHT @@@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# @@@ END COPYRIGHT @@@ +# +# make sure the environment can build the code of trafodion or not. +# must configure the yum repo right before execute this script. +# run this script with normal user, while must has sudo permission. + +#default path +MY_JVM_PATH=${MY_JVM_PATH-"/usr/lib/jvm"} +MY_JAVA_VER=${MY_JAVA_VER-"java-1.7.0-openjdk"} +MY_SUDO=${MY_SUDO-"sudo"} +MY_YUM=${MY_YUM-"${MY_SUDO} yum -y"} + +# for setup tools +MY_LOCAL_SW_DIST=${MY_LOCAL_SW_DIST-${HOME}/local_software_tools} +MY_INSTALL_SW_DIST=${MY_INSTALL_SW_DIST-${HOME}/installed_software_tools} +MY_DOWNLOAD_SW_DIST=${MY_DOWNLOAD_SW_DIST-${HOME}/download_software_tools} + +CHECKLOG=${LOGFILE-$(pwd)/$0.log} +local_sws=(udis llvm mpich bison icu zookeeper thrift apache-maven protobuf apache-log4cxx hadoop) +http_sws=( +http://sourceforge.net/projects/udis86/files/udis86/1.7/udis86-1.7.2.tar.gz +http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz +http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz +http://ftp.gnu.org/gnu/bison/bison-3.0.tar.gz +http://download.icu-project.org/files/icu4c/4.4/icu4c-4_4-src.tgz +https://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz +http://archive.apache.org/dist/thrift/0.9.0/thrift-0.9.0.tar.gz +http://archive.apache.org/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz +https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz +https://dist.apache.org/repos/dist/release/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz +http://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz +) + +# check the local software directory +if [ ! -d ${MY_LOCAL_SW_DIST} ]; then + echo "WARNING: Local software tools aren't present. Will download all tools from the internet. This will be very slow. If you do have the local software tools present, set the environment variable MY_LOCAL_SW_DIST to point to them and run this script again. The default local software directory is [${MY_LOCAL_SW_DIST}]. Do you want to continue? Enter y/n (default: n):" + read YN + case ${YN} in + Y|y|Yes|YES) + ;; + *) + echo "Downloading the following build tools from the internet:" + for i in `seq ${#local_sws[@]}` + do + printf "%2d.%15s: %s\n" ${i} ${local_sws[${i}-1]} ${http_sws[${i}-1]} + done + exit 1 + ;; + esac +else + # check the local software's source exist or not + for local_sw in ${local_sws[@]} + do + local_file=`ls ${MY_LOCAL_SW_DIST} | grep ${local_sw}` + if [ "x${local_file}" = "x" ]; then + echo "WARNING: [${local_sw}] source file does not exist in directory [${MY_LOCAL_SW_DIST}]" + fi + done +fi + +# check the permission. +(${MY_SUDO} touch /etc/trafpermise) >>${LOGFILE}2>&1 +if [ "x$?" != "x0" ]; then + echo "ERROR: you must run this script with sudo without password permission." + exit 1 +fi + +# check the based command +basecmds=(yum lsb_release awk cut uname) +for basecmd in ${basecmds[@]} +do + basecmdpath=`which ${basecmd}` + if [ "x$?" != "x0" ]; then + case ${basecmd} in + yum) + echo "ERROR: You must first install yum." + exit 1 + ;; + lsb_release) + (${MY_YUM} install redhat-lsb) >>${LOGFILE}2>&1 + if [ "x$?" = "x0" ]; then + echo "ERROR: yum repo server has a error when run command [${MY_YUM} install redhat-lsb]." + exit 1 + fi + ;; + *) + echo "ERROR: command [${basecmd}] not exist. Make sure you have installed it, and have added it to the command path." + exit 1 + esac + fi + echo "INFO: command ${basecmd} exist" +done + +osname=`uname -o` +cpuarch=`uname -m` +echo "INFO: os is [${osname}], cpu architecture is [${cpuarch}]" + +osdistributor=`lsb_release -i | cut -d : -f 2-` +case ${osdistributor} in + *RedHat*|*CentOS*) + echo "INFO: os distributor id is [${osdistributor}]" + ;; + *) + echo "ERROR: The OS distribution is [${osdistributor}], but Trafodion only supports RedHat and CentOS presently." --- End diff -- As far as I know we have also tried on the Oracle and Amazon distributions, which are similar to RedHat, and they may work as well (possibly with some small modifications). Many of the other Linux distros don't have yum, so they would have given an error above. Maybe you want to allow the user to proceed, at their own risk?
---