diff --git a/.directory b/.directory new file mode 100644 index 0000000..8bf47a3 --- /dev/null +++ b/.directory @@ -0,0 +1,8 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2016,6,14,9,58,21 +Version=3 +ViewMode=1 + +[Settings] +HiddenFilesShown=true diff --git a/README.md b/README.md deleted file mode 100644 index 41d42e6..0000000 --- a/README.md +++ /dev/null @@ -1,44 +0,0 @@ -Instalador LBD - LBDoc -============= - -Instalador da aplicação LBD - LBDoc uma aplicação LightBase! Trata-se de uma aplicação LightBase completa e cheia de exemplos de uso. Excelente para a gestão documental foi implementada em Mono/.Net 4.0 podendo ser usada em ambientes Linux ou Windows. Instalador para Linux. - -Instruções: ------ - -Baixe usando o comando... - -``` -git clone git@softwarepublico.gov.br:lightbase/lbdinst.git -``` - -Na pasta principal do projeto instale usando o comando... - -``` -bash install.sh -``` - -O instalador é muito simples, dedutível e todo auto-explicativo. Se o objetivo da instalação é conhecer/testar a plataforma recomendados usar todos os valores padrão sugeridos e responder sim ("y") à tudo! - -**Nota I:** Esse instalador é p/ uso, por hora, no CentOS6/RHEL6! - -LightBase - Direto à informação! -============= - -O que é o LightBase? ------ - -O LightBase começou a ser desenvolvido na década de 80 no Brasil sendo pioneiro no modelo documental, possui características únicas não sendo igualado por nenhum software nacional ou estrangeiro. - -O LightBase foi totalmente reformulado pela BRLight tendo como base a expertise de seus fundadores adquirida em mais de 30 anos de vivência em tecnologia. Essa nova versão foi chamada de LightBaseNeo e traz todas as boas qualidade das versões anteriores, mais paralelização de processamento das informações, paralelização de indexação, paralelização de conteúdo e outros processos e funcionalidades inéditas que visam melhorar a sua performance, manutenção e usabilidade. Essa nova versão está pronta para comportar novos tipos de indexação como fuzzy, web semântica, relacional entre outras sendo bastante dimensionável. - -O LightBaseNeo é um banco de dados textual, de modelo documental mas que também guarda os dados de forma relacional e visa em seu âmago a recuperação ágil e fácil de conteúdo, inclusive textos de arquivos (OCR). Possui dados auto contidos o que torna fácil de estender e manter. O LightBaseNeo possui módulos separados para indexação, para persistência, para recuperação de conteúdo e todos os seus componentes são baseados em tecnologias livres. - - Sendo um banco de dados simples, intuitivo, e fácil de aprender e sua meta é ser acessível para o usuário final, uma vez que seu modelo de composição e sua forma de operar é extremamente simples. Não possui relacionamentos, embora se o desenvolvedor desejar, também poderá utilizar o modelo relacional, isso porque o novo LightBase também é aderente a esse modelo. O LightBaseNeo permite guardar grande quantidade de informação e encontrá-la de forma simples, direta e objetiva. Possui tecnologia livre e nacional sendo um projeto grande e ambicioso, mas que sempre almejou a simplicidade. É um software público que pertence a cada cidadão brasileiro, que pode ser usado de forma irrestrita para tratar das necessidades mais simples às mais complexas. - -Contato ------ - -BR Light LTDA - LightBase Consulting in Public Software/LightBase Consultoria em Software Público -Free Software + Our Ideas = Best Solution!/Software Livre + Nossas Idéias = Melhor Solução! -+55-61-3347-1949 - http://www.LightBase.com.br - Brazil-DF diff --git a/ez_i.sh b/ez_i.sh index 2ee740c..4e27d48 100755 --- a/ez_i.sh +++ b/ez_i.sh @@ -273,8 +273,9 @@ f_pack_is_inst() { Args: PACKAGE_NM_P (str): Nome do pacote. - PACK_MANAG (str): Tipo de gerenciador de pacotes. Apenas yum é - suportado. Em caso diverso o script exibe erro e para. + PACK_MANAG (str): Tipo de gerenciador de pacotes. "yum", + "apt-get" e "zypper" são suportados. Em caso diverso o script + exibe erro e para. EXIST_MSG_P (Optional[str]): Mensagem a ser exibida se o pacote já estiver instalado. Se vazio ou não informado não será exibida mensagem. @@ -309,6 +310,30 @@ f_pack_is_inst() { else F_PACK_IS_INST_R=0 fi + elif [ "$PACK_MANAG" == "apt-get" ] ; then + if dpkg -s "$PACKAGE_NM_P" &> /dev/null; then + if [ ${SKIP_MSG_P} -eq 0 ] && [ ! -z "$EXIST_MSG_P" ] ; then + f_div_section + echo "$EXIST_MSG_P" + f_div_section + f_enter_to_cont + fi + F_PACK_IS_INST_R=1 + else + F_PACK_IS_INST_R=0 + fi + elif [ "$PACK_MANAG" == "zypper" ] ; then + if zypper se -i --match-word "$PACKAGE_NM_P" > /dev/null 2>&1; then + if [ ${SKIP_MSG_P} -eq 0 ] && [ ! -z "$EXIST_MSG_P" ] ; then + f_div_section + echo "$EXIST_MSG_P" + f_div_section + f_enter_to_cont + fi + F_PACK_IS_INST_R=1 + else + F_PACK_IS_INST_R=0 + fi else f_div_section echo "ERROR! Not implemented for \"$PACK_MANAG\"!" @@ -462,6 +487,7 @@ f_is_not_running() { CHK_INVERT=0 fi F_IS_NOT_RUNNING_R=0 + # NOTE: A verificação "grep -v grep" é para que ele não dê positivo # para o próprio comando grep! By Questor F_IS_NOT_RUNNING_R=0 @@ -484,6 +510,7 @@ f_is_not_running() { F_GET_STDERR_R="" F_GET_STDOUT_R="" +F_GET_EXIT_CODE_R=0 f_get_stderr_stdout() { : 'Executar um comando e colocar a saída de stderr e stdout nas variáveis "F_GET_STDERR_R" e "F_GET_STDOUT_R"!. @@ -499,8 +526,9 @@ f_get_stderr_stdout() { CMD_TO_EXEC=$1 F_GET_STDERR_R="" F_GET_STDOUT_R="" - unset t_std t_err - eval "$( eval "$CMD_TO_EXEC" 2> >(t_err=$(cat); typeset -p t_err) > >(t_std=$(cat); typeset -p t_std) )" + unset t_std t_err t_ret + eval "$( eval "$CMD_TO_EXEC" 2> >(t_err=$(cat); typeset -p t_err) > >(t_std=$(cat); typeset -p t_std); t_ret=$?; typeset -p t_ret )" + F_GET_EXIT_CODE_R=$t_ret F_GET_STDERR_R=$t_err F_GET_STDOUT_R=$t_std } @@ -536,7 +564,6 @@ f_ez_mv_bak() { SKIP_MSG_P=1 fi - MK_BAK=1 F_BAK_PATH_R="" F_BAK_NAME_R="" @@ -565,6 +592,8 @@ f_error_exit() { ERROR_CAUSE_P (Optional[str]): Causa do erro. ' + EZ_I_S_ON_HOLDER=$EZ_I_SKIP_ON_V + EZ_I_SKIP_ON_V=0 ERROR_CAUSE_P=$1 echo f_open_section "E R R O R !" @@ -575,9 +604,40 @@ f_error_exit() { echo "$ERROR_MSG_NOW_P" echo f_close_section + EZ_I_SKIP_ON_V=$EZ_I_S_ON_HOLDER exit 1 } +f_warning_msg() { + : '"Printa" uma mensagem de aviso. + + Args: + WARNING_P (str): aviso. + ASK_FOR_CONT_P (Optional[int]): 1 - Checa se o usuário deseja + continuar com a instalação; 0 - Solicita que pressione "enter". + Padrão 0. + ' + + EZ_I_S_ON_HOLDER=$EZ_I_SKIP_ON_V + EZ_I_SKIP_ON_V=0 + WARNING_P=$1 + ASK_FOR_CONT_P=$2 + if [ -z "$ASK_FOR_CONT_P" ] ; then + ASK_FOR_CONT_P=0 + fi + echo + f_open_section "W A R N I N G !" + echo "$WARNING_P" + echo + f_close_section + if [ ${ASK_FOR_CONT_P} -eq 0 ] ; then + f_enter_to_cont + else + f_continue + fi + EZ_I_SKIP_ON_V=$EZ_I_S_ON_HOLDER +} + f_continue() { : 'Questionar ao usuário se deseja continuar ou parar a instalação. @@ -600,8 +660,344 @@ f_continue() { fi } +F_SPLIT_R=() +f_split() { + : 'Faz "split" em uma dada string e devolve um array. -# < -------------------------------------------------------------------------- + Args: + TARGET_P (str): String alvo do "split". + DELIMITER_P (Optional[str]): Delimitador usado no "split". + Se não informado o split vai ser feito por espaços em branco. + + Returns: + F_SPLIT_R (array): Array com a string fornecida separada pelo + delimitador informado. + ' + + F_SPLIT_R=() + TARGET_P=$1 + DELIMITER_P=$2 + if [ -z "$DELIMITER_P" ] ; then + DELIMITER_P=" " + fi + + REMOVE_N=1 + if [ "$DELIMITER_P" == "\n" ] ; then + REMOVE_N=0 + fi + + if [ ${REMOVE_N} -eq 1 ] ; then + + # NOTE: Devido a limitações do bash temos alguns problemas para + # poder obter a saída de um split via awk dentro de um array e + # por isso precisamos do uso da "quebra de linha" (\n) para + # termos sucesso! Visto isso, removemos as quebras de linha + # momentaneamente depois as reintegramos! By Questor + TARGET_P=$(echo "$TARGET_P" | awk 'BEGIN {RS="dn" } {gsub("\n","£§¢¬¨") ;printf $0 }') + fi + + SPLIT_NOW=$(awk -F"$DELIMITER_P" '{for(i=1;i<=NF;i++){printf "%s\n", $i}}' <<<"${TARGET_P}") + + while IFS= read -r LINE_NOW; do + if [ ${REMOVE_N} -eq 1 ] ; then + LN_NOW_WITH_N=$(awk 'BEGIN {RS="dn"} {gsub("£§¢¬¨","\n") ;printf $0 }' <<<"${LINE_NOW}") + F_SPLIT_R+=("$LN_NOW_WITH_N") + else + F_SPLIT_R+=("$LINE_NOW") + fi + done <<< "$SPLIT_NOW" +} + +F_ABOUT_DISTRO_R=() +f_about_distro() { + : 'Obter informações sobre a distro. + + Returns: + F_ABOUT_DISTRO_R (array): Array com informações sobre a + distro na seguinte ordem: NAME, VERSION, BASED e ARCH. + ' + + F_ABOUT_DISTRO_R=() + f_get_stderr_stdout "cat /etc/*-release" + ABOUT_INFO=$F_GET_STDOUT_R + + if [[ $ABOUT_INFO == *"ID=debian"* ]] ; then + f_split "$ABOUT_INFO" "\n" + F_SPLIT_R_0=("${F_SPLIT_R[@]}") + TOTAL_0=${#F_SPLIT_R_0[*]} + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do + f_split "${F_SPLIT_R_0[$i]}" "=" + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + TOTAL_1=${#F_SPLIT_R_1[*]} + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do + p=$[$o+1] + case "${F_SPLIT_R_1[$o]}" in + "NAME") + f_split "${F_SPLIT_R_1[$p]}" "\"" + F_SPLIT_R_2=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_2[1]}") + ;; + "VERSION_ID") + f_split "${F_SPLIT_R_1[$p]}" "\"" + F_SPLIT_R_3=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_3[1]}") + ;; + *) + + ;; + esac + done + done + F_ABOUT_DISTRO_R+=("Debian") + elif [[ $ABOUT_INFO == *"ID=\"sles\""* ]] ; then + f_split "$ABOUT_INFO" "\n" + F_SPLIT_R_0=("${F_SPLIT_R[@]}") + TOTAL_0=${#F_SPLIT_R_0[*]} + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do + f_split "${F_SPLIT_R_0[$i]}" "=" + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + TOTAL_1=${#F_SPLIT_R_1[*]} + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do + p=$[$o+1] + case "${F_SPLIT_R_1[$o]}" in + "NAME") + f_split "${F_SPLIT_R_1[$p]}" "\"" + F_SPLIT_R_2=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_2[1]}") + ;; + "VERSION_ID") + f_split "${F_SPLIT_R_1[$p]}" "\"" + F_SPLIT_R_3=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_3[1]}") + ;; + *) + + ;; + esac + done + done + F_ABOUT_DISTRO_R+=("Suse") + elif [[ $ABOUT_INFO == *"ID=opensuse"* ]] || + [[ $ABOUT_INFO == *"ID_LIKE=\"suse\""* ]] ; then + f_split "$ABOUT_INFO" "\n" + F_SPLIT_R_0=("${F_SPLIT_R[@]}") + TOTAL_0=${#F_SPLIT_R_0[*]} + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do + f_split "${F_SPLIT_R_0[$i]}" "=" + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + TOTAL_1=${#F_SPLIT_R_1[*]} + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do + p=$[$o+1] + case "${F_SPLIT_R_1[$o]}" in + "NAME") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[$p]}") + ;; + "VERSION_ID") + f_split "${F_SPLIT_R_1[$p]}" "\"" + F_SPLIT_R_3=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_3[1]}") + ;; + *) + + ;; + esac + done + done + F_ABOUT_DISTRO_R+=("Suse") + elif [[ $ABOUT_INFO == *"DISTRIB_ID=Ubuntu"* ]] || + [[ $ABOUT_INFO == *"ID_LIKE=debian"* ]] ; then + f_split "$ABOUT_INFO" "\n" + F_SPLIT_R_0=("${F_SPLIT_R[@]}") + TOTAL_0=${#F_SPLIT_R_0[*]} + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do + f_split "${F_SPLIT_R_0[$i]}" "=" + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + TOTAL_1=${#F_SPLIT_R_1[*]} + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do + p=$[$o+1] + case "${F_SPLIT_R_1[$o]}" in + "DISTRIB_ID") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[$p]}") + ;; + "DISTRIB_RELEASE") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[$p]}") + ;; + *) + + ;; + esac + done + done + F_ABOUT_DISTRO_R+=("Debian") + elif [[ $ABOUT_INFO == *"CentOS release "* ]] ; then + f_split "$ABOUT_INFO" "\n" + F_SPLIT_R_0=("${F_SPLIT_R[1]}") + f_split "${F_SPLIT_R_0[0]}" " " + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[0]}") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[2]}") + F_ABOUT_DISTRO_R+=("RedHat") + elif [[ $ABOUT_INFO == *"Red Hat Enterprise Linux Server release "* ]] ; then + f_split "$ABOUT_INFO" "\n" + F_SPLIT_R_0=("${F_SPLIT_R[1]}") + f_split "${F_SPLIT_R_0[0]}" " " + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + F_ABOUT_DISTRO_R+=("Red Hat Enterprise Linux Server") + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[6]}") + F_ABOUT_DISTRO_R+=("RedHat") + else + F_ABOUT_DISTRO_R+=("Unknown") + F_ABOUT_DISTRO_R+=("Unknown") + F_ABOUT_DISTRO_R+=("Unknown") + fi + F_ABOUT_DISTRO_R+=($(arch)) +} + +F_IS_ROOT_R=1 +f_is_root() { + : 'Checar se o usuário é root. + + Args: + CHK_ONLY_P (Optional[int]): 1 - Apenas verifica e retorna o + resultado; 0 - Se não for root emite erro e encerra a execução. + Padrão 0. + + Returns: + F_IS_ROOT_R (int): 1 - É root; 0 - Não é root. + ' + + CHK_ONLY_P=$1 + if [ -z "$CHK_ONLY_P" ] ; then + CHK_ONLY_P=0 + fi + + F_IS_ROOT_R=1 + if [[ $EUID -ne 0 ]]; then + f_enter_to_cont "ERROR! You need to be root!" + F_IS_ROOT_R=0 + if [ ${CHK_ONLY_P} -eq 0 ] ; then + f_error_exit + fi + fi +} + +F_CHK_DISTRO_STATUS_R="" +f_chk_distro_status() { + : 'Verifica se a distro informada está subscrita e/ou registrada + e/ou ativa perante os recursos informados. + + Args: + DISTRO_NAME_P (str): Nome da distro sobre a qual será executada + verificação. + RESOURCES_ARR_P (str): Array com a lista de recursos a serem + verificados na distro alvo. + + Returns: + F_CHK_DISTRO_STATUS_R (str): Possui a saída do comando de + verificação executado. + ' + + F_CHECK_RHEL_R="" + DISTRO_NAME_P=$1 + RESOURCES_ARR_P=("${!2}") + TOTAL_2=${#RESOURCES_ARR_P[*]} + + RES_OK_ARR=() + REDHAT_ACTV=0 + + CHK_RES_CMD="" + if [ "$DISTRO_NAME_P" == "RedHat" ] ; then + CHK_RES_CMD="subscription-manager list --consumed" + f_get_stderr_stdout "$CHK_RES_CMD" + f_split "$F_GET_STDOUT_R" "Subscription Name:" + elif [ "$DISTRO_NAME_P" == "SLES" ] ; then + CHK_RES_CMD="zypper sl" + f_get_stderr_stdout "$CHK_RES_CMD" + f_split "$F_GET_STDOUT_R" "\n" + fi + + F_SPLIT_R_0=("${F_SPLIT_R[@]}") + TOTAL_0=${#F_SPLIT_R_0[*]} + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do + if [[ "$DISTRO_NAME_P" == "RedHat" ]] ; then + f_split "${F_SPLIT_R_0[$i]}" "\n" + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + TOTAL_1=${#F_SPLIT_R_1[*]} + CHK_ACTV=0 + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do + if [[ "${F_SPLIT_R_1[$o]}" == "Provides:"* ]] ; then + CHK_ACTV=1 + fi + if [ ${CHK_ACTV} -eq 1 ] ; then + for (( w=0; w<=$(( $TOTAL_2 -1 )); w++ )) ; do + if [[ "${F_SPLIT_R_1[$o]}" == *"${RESOURCES_ARR_P[$w]}" ]] ; then + RES_OK_ARR+=($w) + break + fi + done + if [ ${REDHAT_ACTV} -eq 0 ] && + [[ "${F_SPLIT_R_1[$o]}" == "Active:"* ]] && + [[ "${F_SPLIT_R_1[$o]}" == *"True" ]] ; then + REDHAT_ACTV=1 + fi + fi + done + elif [[ "$DISTRO_NAME_P" == "SLES" ]] ; then + REDHAT_ACTV=1 + f_split "${F_SPLIT_R_0[$i]}" "|" + F_SPLIT_R_1=("${F_SPLIT_R[@]}") + for (( w=0; w<=$(( $TOTAL_2 -1 )); w++ )) ; do + if [[ "${F_SPLIT_R_1[1]}" == *"${RESOURCES_ARR_P[$w]}"* ]] ; then + if [[ "${F_SPLIT_R_1[3]}" == *"Yes"* ]] ; then + if [[ "${F_SPLIT_R_1[5]}" == *"Yes"* ]] ; then + RES_OK_ARR+=($w) + break + fi + fi + fi + done + fi + done + + WARNINGS_MSGS=() + TOTAL_3=${#RES_OK_ARR[*]} + for (( z=0; z<=$(( $TOTAL_2 -1 )); z++ )) ; do + RES_OK_NOW=1 + for (( t=0; t<=$(( $TOTAL_3 -1 )); t++ )) ; do + if (( ${RES_OK_ARR[$t]} == $z )); then + RES_OK_NOW=0 + break + fi + done + if (( $RES_OK_NOW == 1 )); then + WARNINGS_MSGS+=("$DISTRO_NAME_P does not have access to this resource: \"${RESOURCES_ARR_P[$z]}\".") + fi + done + + TOTAL_4=${#WARNINGS_MSGS[*]} + WAR_MSGS_STR="" + USE_NEWLINE="" + if [ ! $TOTAL_4 -eq 0 ] || [ $REDHAT_ACTV -eq 0 ]; then + WAR_MSGS_STR="SOME PROBLEM APPEAR TO HAVE BEEN DETECTED ON" + if [[ "$DISTRO_NAME_P" == "RedHat" ]] ; then + WAR_MSGS_STR+=" REDHAT SUBSCRIPTION! " + elif [[ "$DISTRO_NAME_P" == "SLES" ]] ; then + WAR_MSGS_STR+=" SLES REGISTRATION! " + fi + WAR_MSGS_STR+="PLEASE CHECK IT!" + for (( y=0; y<=$(( $TOTAL_4 -1 )); y++ )) ; do + if (( $y == 0 )); then + WAR_MSGS_STR+=$'\n\n' + else + USE_NEWLINE=$'\n' + fi + WAR_MSGS_STR+="$USE_NEWLINE -> ${WARNINGS_MSGS[$y]}" + done + WAR_MSGS_STR+=$'\n\n'"FOR MORE INFORMATION TRY: \"$CHK_RES_CMD\"." + f_warning_msg "$WAR_MSGS_STR" 1 + fi + F_CHK_DISTRO_STATUS_R=$F_GET_STDOUT_R +} # > -------------------------------------------------------------------------- # GRAFICO! diff --git a/install.sh b/install.sh index 94b035e..588092b 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,17 @@ #!/bin/bash +# > ----------------------------------------- +# Run that script with bash even if the user use sh/dash or any sh like +# interpreter. This way it correctly works with either: +# "sh ./my_script.sh" or "bash ./my_script.sh" or "./my_script.sh" + +if [ -z "$BASH_VERSION" ] +then + exec bash "$0" "$@" +fi + +# < ----------------------------------------- + # NOTE: Evita problemas com caminhos relativos! By Questor SCRIPTDIR_V="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" . $SCRIPTDIR_V/ez_i.sh @@ -23,17 +35,27 @@ Have fun! =D EOF read -d '' WARNINGS_F <<"EOF" -- Installer designed for CentOS 6 AMD64/RHEL 6 AMD64! +- This installer is compatible with RHEL, SUSE, Debian or distributions +based on these. - We RECOMMEND you... Install all the components (answer yes to everything). Except contrary guidance! Check for previous installations! If there is previous installations consider this variant in the process! + Although this is not mandatory, do the installation process in an + exclusive machine for this. + +- We NOTICE you... + This installer assumes that the target distribution has a "standard + setup". This may include components such as firewall, SELinux + and others. + - We WARNING you... - USE AT YOUR OWN RISK: WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO -YOURSELF, HARDWARE, OR CO-WORKERS. EXCEPT IN CASES WHERE THERE ARE -SIGNED CONTRACT THAT REGULATES THIS! + THIS INSTALLER AND RESULTING PRODUCTS COMES WITH ABSOLUTELY NO WARRANTY! + USE AT YOUR OWN RISK! WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO YOURSELF, + HARDWARE, OR CO-WORKERS. EXCEPT IN CASES WHERE THERE ARE SIGNED CONTRACT + THAT REGULATES THIS! EOF read -d '' COMPANY_F <<"EOF" @@ -62,13 +84,18 @@ TERMS_LICEN_F="" # < -------------------------------------------------------------------------- +# > ----------------------------------------- +# Checar se o usuário é root! + +f_is_root + +# < ----------------------------------------- + # > -------------------------------------------------------------------------- # INTRUÇÕES! # -------------------------------------- read -d '' INSTRUCT_F <<"EOF" -- To run this script YOU NEED to be root! - - TO CANCEL installation at any time use Ctrl+c! EOF @@ -77,6 +104,128 @@ INSTRUCT_F="" # < -------------------------------------------------------------------------- +DISTRO_TYPE="" +DISTRO_NAME="" +# > ----------------------------------------- +# Checar se a distro é compatível! + +f_open_section +f_about_distro +f_div_section +echo "DISTRO INFORMATION:" +f_div_section +echo "NAME: .... ${F_ABOUT_DISTRO_R[0]}" +echo "VERSION: . ${F_ABOUT_DISTRO_R[1]}" +echo "BASED: ... ${F_ABOUT_DISTRO_R[2]}" +echo "ARCH: .... ${F_ABOUT_DISTRO_R[3]}" +f_div_section + +if [[ "${F_ABOUT_DISTRO_R[2]}" == "Debian" ]] || [[ "${F_ABOUT_DISTRO_R[2]}" == "RedHat" ]] || + [[ "${F_ABOUT_DISTRO_R[2]}" == "Suse" ]] ; then + if [[ "${F_ABOUT_DISTRO_R[2]}" == "Debian" ]] ; then + DISTRO_TYPE="DEB" + if [[ "${F_ABOUT_DISTRO_R[0]}" == "Ubuntu" ]] ; then + DISTRO_NAME="Ubuntu" + if [[ "${F_ABOUT_DISTRO_R[1]}" != "14.04" ]] ; then + f_div_section + f_yes_no "Linux version may be incompatible with this installer (expected: 14.04/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "Debian GNU/Linux" ]] ; then + DISTRO_NAME="Debian" + if [[ "${F_ABOUT_DISTRO_R[1]}" != "8" ]] ; then + f_div_section + f_yes_no "Linux version may be incompatible with this installer (expected: 8/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + else + f_div_section + f_yes_no "Linux distro may be incompatible with this installer (expected: Ubuntu or Debian/obtained: ${F_ABOUT_DISTRO_R[0]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + elif [[ "${F_ABOUT_DISTRO_R[2]}" == "RedHat" ]] ; then + DISTRO_TYPE="RH" + if [[ "${F_ABOUT_DISTRO_R[0]}" == "Red Hat Enterprise Linux Server" ]] ; then + DISTRO_NAME="RedHat" + if [[ "${F_ABOUT_DISTRO_R[1]}" != "6."* ]] ; then + f_div_section + f_yes_no "Linux version may be incompatible with this installer (expected: 6.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "CentOS" ]] ; then + DISTRO_NAME="CentOS" + if [[ "${F_ABOUT_DISTRO_R[1]}" != "6."* ]] ; then + f_div_section + f_yes_no "Linux version may be incompatible with this installer (expected: 6.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + else + f_div_section + f_yes_no "Linux distro may be incompatible with this installer (expected: CentOS or Red Hat Enterprise Linux Server/obtained: ${F_ABOUT_DISTRO_R[0]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + elif [[ "${F_ABOUT_DISTRO_R[2]}" == "Suse" ]] ; then + DISTRO_TYPE="SUSE" + if [[ "${F_ABOUT_DISTRO_R[0]}" == "openSUSE" ]] ; then + DISTRO_NAME="openSUSE" + if [[ "${F_ABOUT_DISTRO_R[1]}" != "13."* ]] ; then + f_div_section + f_yes_no "Linux version may be incompatible with this installer (expected: 13.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "SLES" ]] ; then + DISTRO_NAME="SLES" + if [[ "${F_ABOUT_DISTRO_R[1]}" != "12."* ]] ; then + f_div_section + f_yes_no "Linux version may be incompatible with this installer (expected: 12.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + else + f_div_section + f_yes_no "Linux distro may be incompatible with this installer (expected: openSUSE or SUSE Linux Enterprise Server/obtained: ${F_ABOUT_DISTRO_R[0]})! Continue?" + f_div_section + if [ ${YES_NO_R} -eq 0 ] ; then + exit 0 + fi + fi + fi + + if [[ "${F_ABOUT_DISTRO_R[3]}" != "x86_64" ]] ; then + f_enter_to_cont "Linux architecture completely incompatible with this installer (expected: x86_64/obtained: ${F_ABOUT_DISTRO_R[3]})!" + exit 0 + fi +else + f_enter_to_cont "Linux distro completely incompatible with this installer (expected: Debian(or based) or RedHat(or based) or SUSE(or based)/obtained: ${F_ABOUT_DISTRO_R[2]})!" + exit 0 +fi +f_close_section + +# < ----------------------------------------- + # > ----------------------------------------- # Dá ao usuário mais avançado a possibilideade de usar o instalador # simplificado! @@ -86,7 +235,7 @@ INSTRUCT_F="" SIMPLE_INST=0 if [ ${SIMPLE_INST} -eq 0 ] ; then f_open_section - f_yes_no "Use simple install (using a default value for most of the options)?" + f_yes_no "Use simple install (use default values for most of the options)?" if [ ${YES_NO_R} -eq 1 ] ; then # NOTE: Essa variável serve apenas para "preservar" o valor @@ -111,124 +260,309 @@ fi # Garantir o encodamento correto para evitar problemas de # compatibilidade! -EZ_I_SKIP_ON_V=$SIMPLE_INST -f_open_section -read -d '' TITLE_F <<"EOF" -Set terminal encode? (recommended for Windows terminal clients) -EOF - -f_yes_no "$TITLE_F" -TITLE_F="" -if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then - export LANG=pt_BR.utf8 +if [ ${SIMPLE_INST} -eq 0 ] ; then + EZ_I_SKIP_ON_V=$SIMPLE_INST + f_open_section + f_yes_no "Set terminal encode? (in some cases recommended for Windows ssh clients)" + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + export LANG=pt_BR.utf8 + fi + f_close_section fi -f_close_section # < ----------------------------------------- # > ----------------------------------------- # Desabilita o SElinux! -EZ_I_SKIP_ON_V=0 -f_open_section -read -d '' TITLE_F <<"EOF" -Disable SElinux (use "y" if you never did it)? -EOF - -f_yes_no "$TITLE_F" -TITLE_F="" -if [ ${YES_NO_R} -eq 1 ] ; then - setenforce 0 - - # NOTE: As condições abaixo visam evitar que o arquivo seja - # desnecessariamente e erroneamente modificado! By Questor - EZ_I_SKIP_ON_V=$SIMPLE_INST - f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!" +if [[ "$DISTRO_TYPE" == "RH" ]] ; then EZ_I_SKIP_ON_V=0 - if [ ${FL_CONT_STR_R} -eq 0 ] ; then - f_fl_cont_str "SELINUX=disabled" "/etc/sysconfig/selinux" + f_open_section + f_yes_no "Disable SElinux (use "y" if you never did it)?" + if [ ${YES_NO_R} -eq 1 ] ; then + setenforce 0 + + # NOTE: As condições abaixo visam evitar que o arquivo seja + # desnecessariamente e erroneamente modificado! By Questor + EZ_I_SKIP_ON_V=$SIMPLE_INST + f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!" + EZ_I_SKIP_ON_V=0 if [ ${FL_CONT_STR_R} -eq 0 ] ; then - f_ez_sed "SELINUX=enforcing" "# SELINUX=enforcing\nSELINUX=disabled" "/etc/sysconfig/selinux" + f_fl_cont_str "SELINUX=disabled" "/etc/sysconfig/selinux" + if [ ${FL_CONT_STR_R} -eq 0 ] ; then + f_ez_sed "SELINUX=enforcing" "# SELINUX=enforcing\nSELINUX=disabled" "/etc/sysconfig/selinux" + fi fi fi + f_close_section fi -f_close_section # < ----------------------------------------- # > ----------------------------------------- -# Instalar o Apache (httpd)! +# Atualizar a distro (repositório)! EZ_I_SKIP_ON_V=$SIMPLE_INST -f_open_section -read -d '' TITLE_F <<"EOF" -Install Apache (httpd)? -EOF - -f_yes_no "$TITLE_F" -TITLE_F="" -if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then - f_pack_is_inst "httpd-devel" "yum" "Apache (httpd) already installed!" +if [[ "$DISTRO_TYPE" == "RH" ]] ; then + if [[ "$DISTRO_NAME" == "RedHat" ]] ; then + RESOURCES_ARR_P=("Red Hat Enterprise Linux Server") + f_chk_distro_status "$DISTRO_NAME" RESOURCES_ARR_P[@] + fi + f_div_section + f_yes_no "Update your distro? (\"y\" highly recommended)" + f_div_section + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + yum -y update + fi + f_pack_is_inst "git" "yum" "\"git\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install git + fi +elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + f_div_section + f_yes_no "Update your distro? (\"y\" highly recommended)" + f_div_section + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + apt-get -y update + fi + f_pack_is_inst "git" "apt-get" "\"git\" already installed!" if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install httpd-devel httpd - chkconfig httpd on - chown -R apache /var/www - chmod -R 755 /var/www + apt-get -y install git + fi +elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + if [[ "$DISTRO_NAME" == "SLES" ]] ; then + RESOURCES_ARR_P=("SUSE_Linux_Enterprise_Server_12_SP1_x86_64" +"SUSE_Linux_Enterprise_Software_Development_Kit_12_SP1_x86_64" +"Web_and_Scripting_Module_12_x86_64") + f_chk_distro_status "SLES" RESOURCES_ARR_P[@] + fi + f_div_section + f_yes_no "Update your distro? (\"y\" highly recommended)" + f_div_section + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + zypper --non-interactive update + fi + f_pack_is_inst "git-core" "zypper" "\"git-core\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install git-core fi fi -f_close_section # < ----------------------------------------- # > ----------------------------------------- -# Abrir o firewall para o Apache (httpd)! +# Instalar pacotes que são comuns a determinados componentes! + +F_COM_PKS_INSTALLED=0 +f_common_packs() { + : 'Instalar pacotes que são comuns a determinados componentes.' + + if [ ${F_COM_PKS_INSTALLED} -eq 0 ] ; then + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + + # NOTE: Set básico e "universal" para compilação... + # ---------------------------> + f_pack_is_inst "gcc-c++" "yum" "\"gcc-c++\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install gcc-c++ + fi + f_pack_is_inst "libtool" "yum" "\"libtool\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install libtool + fi + f_pack_is_inst "zlib-devel" "yum" "\"zlib-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install zlib-devel + fi + # <--------------------------- + + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + + # NOTE: Set básico e "universal" para compilação... + # ---------------------------> + f_pack_is_inst "g++" "apt-get" "\"g++\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install g++ + fi + f_pack_is_inst "libtool" "apt-get" "\"libtool\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install libtool + fi + f_pack_is_inst "autoconf" "apt-get" "\"autoconf\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install autoconf + fi + f_pack_is_inst "make" "apt-get" "\"make\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install make + fi + f_pack_is_inst "zlib1g-dev" "apt-get" "\"zlib1g-dev\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install zlib1g-dev + fi + # <--------------------------- + + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + + # NOTE: Set básico e "universal" para compilação... + # ---------------------------> + f_pack_is_inst "gcc-c++" "zypper" "\"gcc-c++\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install gcc-c++ + fi + if [[ "$DISTRO_NAME" != "SLES" ]] ; then + f_pack_is_inst "automake" "zypper" "\"automake\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install automake + fi + f_pack_is_inst "make" "zypper" "\"make\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install make + fi + f_pack_is_inst "libtool" "zypper" "\"libtool\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install libtool + fi + fi + f_pack_is_inst "zlib-devel" "zypper" "\"zlib-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install zlib-devel + fi + # <--------------------------- + + fi + F_COM_PKS_INSTALLED=1 + fi +} + +# < ----------------------------------------- + +# > ----------------------------------------- +# Instalar o Apache (httpd)! + +HTTPD_SERV_NAME="" +HTTPD_USR="" +HTTPD_GRP="" +HTTPD_DEF_DOC_ROOT="" +if [[ "$DISTRO_TYPE" == "RH" ]] ; then + HTTPD_SERV_NAME="httpd" + HTTPD_USR="apache" + HTTPD_GRP="apache" + HTTPD_DEF_DOC_ROOT="/var/www" +elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + HTTPD_SERV_NAME="apache2" + HTTPD_USR="www-data" + HTTPD_GRP="www-data" + HTTPD_DEF_DOC_ROOT="/var/www" +elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + HTTPD_SERV_NAME="apache2" + HTTPD_USR="wwwrun" + HTTPD_GRP="www" + HTTPD_DEF_DOC_ROOT="/srv/www" +fi EZ_I_SKIP_ON_V=$SIMPLE_INST f_open_section -read -d '' TITLE_F <<"EOF" -Open firewall for Apache (httpd) (TCP 80)? -EOF - -f_yes_no "$TITLE_F" -TITLE_F="" +f_yes_no "Install Apache ($HTTPD_SERV_NAME)?" if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then - f_chk_iptables 80 "Port 80 is already open!" 0 "ACCEPT" "tcp" "NEW" - if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then - iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT - service iptables save - service iptables restart + f_common_packs + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + f_pack_is_inst "httpd-devel" "yum" "Apache ($HTTPD_SERV_NAME) already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install httpd-devel httpd + chkconfig httpd on + fi + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + f_pack_is_inst "apache2-dev" "apt-get" "Apache ($HTTPD_SERV_NAME) already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install apache2-dev apache2 + update-rc.d -f $HTTPD_SERV_NAME remove + update-rc.d $HTTPD_SERV_NAME defaults + fi + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + f_pack_is_inst "apache2-devel" "zypper" "Apache ($HTTPD_SERV_NAME) already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install apache2-devel apache2 + chkconfig apache2 on + fi fi + eval "chown -R $HTTPD_USR $HTTPD_DEF_DOC_ROOT" + eval "chown -R :$HTTPD_GRP $HTTPD_DEF_DOC_ROOT" + eval "chmod -R 755 $HTTPD_DEF_DOC_ROOT" + + eval "service $HTTPD_SERV_NAME restart" &>/dev/null fi f_close_section # < ----------------------------------------- # > ----------------------------------------- +# Abrir o firewall para o Apache (httpd)! + +if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + EZ_I_SKIP_ON_V=$SIMPLE_INST + f_open_section + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + f_yes_no "Open firewall for Apache ($HTTPD_SERV_NAME) (TCP 80)?" + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + f_chk_iptables 80 "Port 80 is already open!" 0 "ACCEPT" "tcp" "NEW" + if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then + iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT + service iptables save + service iptables restart + fi + fi + f_close_section + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + f_yes_no "Open firewall for Apache ($HTTPD_SERV_NAME) (TCP 80)?" + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + f_chk_iptables 80 "Port 80 is already open!" 0 "ACCEPT" "tcp" + if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then + SuSEfirewall2 open EXT TCP 80 + SuSEfirewall2 stop + SuSEfirewall2 start + fi + fi + fi + f_close_section +fi + +# < ----------------------------------------- + +# > ----------------------------------------- # Instalar arquivos de configuração do Apache (httpd) e fontes do LBD - LBDoc! +if [[ "$DISTRO_TYPE" == "RH" ]] ; then + VAR_LOG_HTTPD="/var/log/httpd" +elif [[ "$DISTRO_TYPE" == "DEB" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + VAR_LOG_HTTPD="/var/log/apache2" +fi + +# NOTE: Caminho de instalação do mono com a versão! By Questor +MONO_PATH="/opt/mono-4.4.0" + EZ_I_SKIP_ON_V=$SIMPLE_INST f_open_section -read -d '' TITLE_F <<"EOF" -Install LBD - LBDoc? -EOF - -f_yes_no "$TITLE_F" -TITLE_F="" +f_yes_no "Install LBD - LBDoc?" if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then - f_chk_by_path_hlp "/var/www/html/docslightbase" "d" "\"LBD - LBDoc\" already installed in \"/var/www/html\"!" + HT_FOLDER="" + if [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + mkdir $HTTPD_DEF_DOC_ROOT/html + fi + + f_chk_by_path_hlp "$HTTPD_DEF_DOC_ROOT/html/docslightbase" "d" "\"LBD - LBDoc\" already installed in \"$HTTPD_DEF_DOC_ROOT/html\"!" F_BAK_MD_R=1 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then - f_ez_mv_bak "/var/www/html/docslightbase" "Backup old version and update? (\"y\" recommended)" + f_ez_mv_bak "$HTTPD_DEF_DOC_ROOT/html/docslightbase" "Backup old version and update? (\"y\" recommended)" fi if [ ${F_BAK_MD_R} -eq 1 ] ; then cd "$SCRIPTDIR_V" cd ./lbd-src tar -zxvf ./docslightbase.tar.gz - mv ./docslightbase /var/www/html/ + mv ./docslightbase $HTTPD_DEF_DOC_ROOT/html/ rm -rf ./docslightbase - chown -R apache /var/www/html - chmod -R 755 /var/www/html + LBG_URL="http://127.0.0.1/lbg" QUESTION_F="Enter lightbase URL. Use empty for \"$LBG_URL\"!" @@ -239,38 +573,47 @@ Use empty for \"$LBG_URL\"!" if [ -n "$GET_USR_INPUT_R" ] ; then LBG_URL=$GET_USR_INPUT_R fi - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/portal/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/recebidos/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/manutencao/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/docspro/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/atosnotaspareceres/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/gsa/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/inativos/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/apps/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/expedidos/Web.config" 1 - f_ez_sed "" "$LBG_URL" "/var/www/html/docslightbase/auditoria/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/portal/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/recebidos/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/manutencao/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/docspro/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/atosnotaspareceres/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/gsa/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/inativos/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/apps/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/expedidos/Web.config" 1 + f_ez_sed "" "$LBG_URL" "$HTTPD_DEF_DOC_ROOT/html/docslightbase/auditoria/Web.config" 1 + fi + + HTTPD_CONF_PATH="" + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + HTTPD_CONF_PATH="/etc/httpd/conf.d" + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + HTTPD_CONF_PATH="/etc/apache2/sites-available" + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + HTTPD_CONF_PATH="/etc/apache2/conf.d" fi - f_chk_by_path_hlp "/etc/httpd/conf.d/expedidos.conf" "f" "\"LBD - LBDoc\" (Apache/httpd) configuration files already installed in \"/etc/httpd/conf.d\"!" + f_chk_by_path_hlp "$HTTPD_CONF_PATH/expedidos.conf" "f" "\"LBD - LBDoc\" (Apache/httpd) configuration files already installed in \"$HTTPD_CONF_PATH\"!" F_BAK_MD_R=1 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then f_yes_no "Backup old version and update? (\"y\" recommended)" if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then SUFFIX=$(date +"-D%Y-%m-%d-T%H-%M-%S") - NEW_FDL="/etc/httpd/conf.d/conf-bak$SUFFIX" + NEW_FDL="$HTTPD_CONF_PATH/conf-bak$SUFFIX" mkdir "$NEW_FDL" - mv "/etc/httpd/conf.d/apps.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/atosnotaspareceres.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/auditoria.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/docslightbase.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/docspro.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/expedidos.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/GSA.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/inativos.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/manutencao.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/mod_mono.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/portal.conf" "$NEW_FDL/" - mv "/etc/httpd/conf.d/recebidos.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/apps.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/atosnotaspareceres.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/auditoria.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/docslightbase.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/docspro.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/expedidos.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/GSA.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/inativos.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/manutencao.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/mod_mono.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/portal.conf" "$NEW_FDL/" + mv "$HTTPD_CONF_PATH/recebidos.conf" "$NEW_FDL/" fi F_BAK_MD_R=${YES_NO_R} fi @@ -278,10 +621,104 @@ Use empty for \"$LBG_URL\"!" cd "$SCRIPTDIR_V" cd ./other-srcs-n-apps tar -zxvf ./lbdoc-httpd-conf.tar.gz - mv ./lbdoc-httpd-conf/* /etc/httpd/conf.d/ + mv ./lbdoc-httpd-conf/* $HTTPD_CONF_PATH/ rm -rf ./lbdoc-httpd-conf - chown -R apache /etc/httpd/conf.d - chmod -R 755 /etc/httpd/conf.d + + MOD_MONO_SO_PATH="" + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + MOD_MONO_SO_PATH="/usr/lib64/httpd/modules/mod_mono.so" + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + MOD_MONO_SO_PATH="/usr/lib/apache2/modules/mod_mono.so" + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + MOD_MONO_SO_PATH="/usr/lib64/apache2/mod_mono.so" + fi + f_ez_sed "" "$MOD_MONO_SO_PATH" "$HTTPD_CONF_PATH/mod_mono.conf" 1 + + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/apps.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/atosnotaspareceres.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/auditoria.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/docslightbase.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/docspro.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/expedidos.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/GSA.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/inativos.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/manutencao.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/portal.conf" 1 + f_ez_sed "" "$HTTPD_DEF_DOC_ROOT" "$HTTPD_CONF_PATH/recebidos.conf" 1 + + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/apps.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/atosnotaspareceres.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/auditoria.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/docspro.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/expedidos.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/GSA.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/inativos.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/manutencao.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/portal.conf" + f_ez_sed "" "$MONO_PATH" "$HTTPD_CONF_PATH/recebidos.conf" + + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/apps.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/atosnotaspareceres.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/auditoria.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/docslightbase.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/docspro.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/expedidos.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/GSA.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/inativos.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/manutencao.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/portal.conf" + f_ez_sed "" "Order allow,deny\n Allow from all" "$HTTPD_CONF_PATH/recebidos.conf" + elif [[ "$DISTRO_TYPE" == "DEB" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/apps.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/atosnotaspareceres.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/auditoria.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/docslightbase.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/docspro.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/expedidos.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/GSA.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/inativos.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/manutencao.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/portal.conf" + f_ez_sed "" "Require all granted" "$HTTPD_CONF_PATH/recebidos.conf" + fi + if [[ "$DISTRO_TYPE" == "DEB" ]] ; then + ln -s "$HTTPD_CONF_PATH/apps.conf" "/etc/apache2/sites-enabled/apps.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/atosnotaspareceres.conf" "/etc/apache2/sites-enabled/atosnotaspareceres.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/auditoria.conf" "/etc/apache2/sites-enabled/auditoria.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/docslightbase.conf" "/etc/apache2/sites-enabled/docslightbase.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/docspro.conf" "/etc/apache2/sites-enabled/docspro.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/expedidos.conf" "/etc/apache2/sites-enabled/expedidos.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/GSA.conf" "/etc/apache2/sites-enabled/GSA.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/inativos.conf" "/etc/apache2/sites-enabled/inativos.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/manutencao.conf" "/etc/apache2/sites-enabled/manutencao.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/mod_mono.conf" "/etc/apache2/sites-enabled/mod_mono.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/portal.conf" "/etc/apache2/sites-enabled/portal.conf" &>/dev/null + ln -s "$HTTPD_CONF_PATH/recebidos.conf" "/etc/apache2/sites-enabled/recebidos.conf" &>/dev/null + + eval "chown -R $HTTPD_USR /etc/apache2/sites-enabled" + eval "chown -R :$HTTPD_GRP /etc/apache2/sites-enabled" + eval "chmod -R 755 /etc/apache2/sites-enabled" + fi + + eval "chown -R $HTTPD_USR $HTTPD_CONF_PATH" + eval "chown -R :$HTTPD_GRP $HTTPD_CONF_PATH" + eval "chmod -R 755 $HTTPD_CONF_PATH" + + eval "chown -R $HTTPD_USR $HTTPD_DEF_DOC_ROOT" + eval "chown -R :$HTTPD_GRP $HTTPD_DEF_DOC_ROOT" + eval "chmod -R 755 $HTTPD_DEF_DOC_ROOT" + + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + f_fl_cont_str "# NOTE: Fixing leaking semaphores with mod_mono!" "/etc/httpd/conf/httpd.conf" + if [ ${FL_CONT_STR_R} -eq 0 ] ; then + f_ez_sed "User apache" "# User apache" "/etc/httpd/conf/httpd.conf" + f_ez_sed "Group apache" "# Group apache" "/etc/httpd/conf/httpd.conf" + f_ez_sed "Include conf.d/*.conf" "\n# NOTE: Fixing leaking semaphores with mod_mono!\nUser apache\nGroup apache\n\nInclude conf.d/*.conf" "/etc/httpd/conf/httpd.conf" + fi + fi + + eval "service $HTTPD_SERV_NAME restart" &>/dev/null fi fi f_close_section @@ -295,11 +732,11 @@ PG_DB_F="lb" EZ_I_SKIP_ON_V=$SIMPLE_INST f_open_section -f_yes_no "Install LBD - LBDoc (postgres 9.4) basic LightBase/LBG data structures?" +f_yes_no "Install LBD - LBDoc (postgres 9.X) basic LightBase/LBG - LBGenerator data structures?" if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then - QUESTION_F="Enter the postgres 9.4 database name for LightBase (LBG). + QUESTION_F="Enter the postgres 9.X database name for LightBase (LBG - LBGenerator). Use empty for \"$PG_DB_F\" (default)!" f_get_usr_input "$QUESTION_F" 1 QUESTION_F="" @@ -327,7 +764,7 @@ Use empty for \"$PG_DB_F\" (default)!" EZ_I_SKIP_ON_V=0 fi else - f_enter_to_cont "The file \"./lbd-basic-dt-strt/lbd-basic-dt-strt.sql\" has the LBD - LBDoc (postgres 9.4) basic LightBase/LBG data structures! Check it!" + f_enter_to_cont "The file \"./lbd-basic-dt-strt/lbd-basic-dt-strt.sql\" has the LBD - LBDoc (postgres 9.X) basic LightBase/LBG - LBGenerator data structures! Check it!" fi f_close_section @@ -338,119 +775,270 @@ f_close_section EZ_I_SKIP_ON_V=$SIMPLE_INST f_open_section -read -d '' TITLE_F <<"EOF" -Install LBD - LBDoc/mono components? -EOF - -f_yes_no "$TITLE_F" -TITLE_F="" +f_yes_no "Install LBD - LBDoc/mono components?" if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then + f_common_packs + if [[ "$DISTRO_TYPE" == "RH" ]] ; then + f_pack_is_inst "bison" "yum" "\"bison\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install bison + fi + f_pack_is_inst "cairo-devel" "yum" "\"cairo-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install cairo-devel + fi + f_pack_is_inst "gnome-utils-libs" "yum" "\"gnome-utils-libs\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install gnome-utils-libs + fi + f_pack_is_inst "urw-fonts" "yum" "\"urw-fonts\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install urw-fonts + fi + f_pack_is_inst "gettext" "yum" "\"gettext\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install gettext + fi + f_pack_is_inst "unzip" "yum" "\"unzip\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install unzip + fi + f_pack_is_inst "glib2-devel" "yum" "\"glib2-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install glib2-devel + fi + f_pack_is_inst "libexif-devel" "yum" "\"libexif-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install libexif-devel + fi + f_pack_is_inst "libjpeg-turbo-devel" "yum" "\"libjpeg-turbo-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install libjpeg-turbo-devel + fi + f_pack_is_inst "openjpeg-libs" "yum" "\"openjpeg-libs\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install openjpeg-libs + fi + f_pack_is_inst "giflib" "yum" "\"giflib\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install giflib + fi + f_pack_is_inst "libtiff-devel" "yum" "\"libtiff-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + yum -y install libtiff-devel + fi + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + f_pack_is_inst "mono-devel" "apt-get" "\"mono-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install mono-devel + fi + f_pack_is_inst "mono-gmcs" "apt-get" "\"mono-gmcs\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install mono-gmcs + fi + f_pack_is_inst "libcairo2-dev" "apt-get" "\"libcairo2-dev\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install libcairo2-dev + fi + f_pack_is_inst "libbison-dev" "apt-get" "\"libbison-dev\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install libbison-dev + fi + f_pack_is_inst "giflib-tools" "apt-get" "\"giflib-tools\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install giflib-tools + fi + f_pack_is_inst "libtiff5-dev" "apt-get" "\"libtiff5-dev\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install libtiff5-dev + fi + f_pack_is_inst "libgdict-1.0-dev" "apt-get" "\"libgdict-1.0-dev\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install libgdict-1.0-dev + fi + f_pack_is_inst "fonts-texgyre" "apt-get" "\"fonts-texgyre\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install fonts-texgyre + fi + f_pack_is_inst "tex-gyre" "apt-get" "\"tex-gyre\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install tex-gyre + fi + f_pack_is_inst "unzip" "apt-get" "\"unzip\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install unzip + fi + if [[ "$DISTRO_NAME" == "Debian" ]] ; then + f_pack_is_inst "glibc-source" "apt-get" "\"glibc-source\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install glibc-source + fi + else + f_pack_is_inst "eglibc-source" "apt-get" "\"eglibc-source\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + apt-get -y install eglibc-source + fi + fi + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then + f_pack_is_inst "bison" "zypper" "\"bison\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install bison + fi + f_pack_is_inst "cairo-devel" "zypper" "\"cairo-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install cairo-devel + fi + f_pack_is_inst "freetype-devel" "zypper" "\"freetype-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install freetype-devel + fi + f_pack_is_inst "gconf2-devel" "zypper" "\"gconf2-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install gconf2-devel + fi + f_pack_is_inst "giflib-devel" "zypper" "\"giflib-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install giflib-devel + fi + f_pack_is_inst "gtk2-devel" "zypper" "\"gtk2-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install gtk2-devel + fi + f_pack_is_inst "intltool" "zypper" "\"intltool\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install intltool + fi + f_pack_is_inst "libexif-devel" "zypper" "\"libexif-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install libexif-devel + fi + f_pack_is_inst "libjpeg8-devel" "zypper" "\"libjpeg8-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install libjpeg8-devel + fi + f_pack_is_inst "libtiff-devel" "zypper" "\"libtiff-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install libtiff-devel + fi + f_pack_is_inst "xorg-x11-devel" "zypper" "\"xorg-x11-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install xorg-x11-devel + fi + if [[ "$DISTRO_NAME" != "SLES" ]] ; then + f_pack_is_inst "mono-devel" "zypper" "\"mono-devel\" already installed!" + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then + zypper --non-interactive install mono-devel + fi + fi + fi + + # NOTE: To debug! + # f_enter_to_cont cd "$SCRIPTDIR_V" cd ./other-srcs-n-apps - f_pack_is_inst "gcc-c++" "yum" "\"gcc-c++\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install gcc-c++ - fi - f_pack_is_inst "glib2-devel" "yum" "\"glib2-devel\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install glib2-devel - fi - f_pack_is_inst "libX11-devel" "yum" "\"libX11-devel\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install libX11-devel - fi - f_pack_is_inst "freetype-devel" "yum" "\"freetype-devel\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install freetype-devel - fi - f_pack_is_inst "fontconfig-devel" "yum" "\"fontconfig-devel\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install fontconfig-devel - fi - f_pack_is_inst "libexif-devel" "yum" "\"libexif-devel\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install libexif-devel - fi - f_pack_is_inst "bison" "yum" "\"bison\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install bison + UP_LIBGDIPLUS=1 + f_chk_by_path_hlp "$MONO_PATH/lib/pkgconfig/libgdiplus.pc" "f" "\"libgdiplus-4.2\" already installed in \"$MONO_PATH\"!" + if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then + f_div_section + f_yes_no "Update/reinstall \"libgdiplus-4.2\"? (\"y\" recommended)" + f_div_section + UP_LIBGDIPLUS=$YES_NO_R + else + f_enter_to_cont "Install \"libgdiplus-4.2\"!" fi - f_pack_is_inst "gettext" "yum" "\"gettext\" already installed!" - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then - yum -y install gettext + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${UP_LIBGDIPLUS} -eq 1 ] ; then + tar -zxvf libgdiplus-4.2.tar.gz + cd ./libgdiplus-4.2 + ./configure --prefix=$MONO_PATH + make -j 4 && make install + cd .. + rm -rf ./libgdiplus-4.2 fi + # NOTE: To debug! + # f_enter_to_cont + + cd "$SCRIPTDIR_V" + cd ./other-srcs-n-apps + UP_MONO=1 - f_chk_by_path_hlp "/opt/mono" "d" "\"mono-2.10.2\" already installed in \"/opt/mono\"!" + f_chk_by_path_hlp "$MONO_PATH/lib/pkgconfig/mono.pc" "f" "\"mono-4.4.0\" already installed in \"$MONO_PATH\"!" if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then f_div_section - f_yes_no "Update/reinstall \"mono-2.10.2\"? (\"y\" recommended)" + f_yes_no "Update/reinstall \"mono-4.4.0\"? (\"y\" recommended)" f_div_section UP_MONO=$YES_NO_R else - f_enter_to_cont "Install \"mono-2.10.2\"!" + f_enter_to_cont "Install \"mono-4.4.0\"!" fi if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${UP_MONO} -eq 1 ] ; then - tar -xjf mono-2.10.2.tar.bz2 - cd ./mono-2.10.2 - ./configure --prefix=/opt/mono --with-libgdiplus=/opt/mono - make - make install - export PATH=$PATH:/opt/mono/bin - export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig + tar -xjvf mono-4.4.0.148.tar.bz2 + cd ./mono-4.4.0 + ./configure --prefix=$MONO_PATH --with-libgdiplus=$MONO_PATH + make -j 4 && make install + + # NOTE: Esse passo é crucial, pois instrui o OS sobre onde + # os componentes do mono estão! By Questor + export PATH=$MONO_PATH/bin:$PATH + export LD_LIBRARY_PATH=$MONO_PATH/lib:$LD_LIBRARY_PATH + export PKG_CONFIG_PATH=$MONO_PATH/lib/pkgconfig:$PKG_CONFIG_PATH + cd .. - rm -rf ./mono-2.10.2 + rm -rf ./mono-4.4.0 fi + # NOTE: To debug! + # f_enter_to_cont + cd "$SCRIPTDIR_V" cd ./other-srcs-n-apps UP_XSP=1 - f_chk_by_path_hlp "/opt/mono/bin/xsp" "d" "\"xsp-2.10.2\" already installed in \"/opt/mono/bin/xsp\"!" + f_chk_by_path_hlp "$MONO_PATH/lib/pkgconfig/xsp-4.pc" "f" "\"xsp-4.2\" already installed in \"$MONO_PATH\"!" if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then f_div_section - f_yes_no "Update/reinstall \"xsp-2.10.2\"? (\"y\" recommended)" + f_yes_no "Update/reinstall \"xsp-4.2\"? (\"y\" recommended)" f_div_section UP_XSP=$YES_NO_R else - f_enter_to_cont "Install \"xsp-2.10.2\"!" + f_enter_to_cont "Install \"xsp-4.2\"!" fi if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${UP_XSP} -eq 1 ] ; then - tar -xjf xsp-2.10.2.tar.bz2 - cd ./xsp-2.10.2 - ./configure --prefix=/opt/mono - make - make install + tar -zxvf xsp-4.2.tar.gz + cd ./xsp-4.2 + ./configure --prefix=$MONO_PATH + make -j 4 && make install cd .. - rm -rf ./xsp-2.10.2 + rm -rf ./xsp-4.2 fi + # NOTE: To debug! + # f_enter_to_cont + cd "$SCRIPTDIR_V" cd ./other-srcs-n-apps - - UP_XSP=1 - f_chk_by_path_hlp "/usr/lib64/httpd/modules/mod_mono.so" "f" "\"mod_mono-2.10\" already installed in \"/usr/lib64/httpd/modules\"!" + UP_MOD_MONO=1 + f_chk_by_path_hlp "$MONO_PATH/share/man/man8/mod_mono.8" "f" "\"mod_mono-3.12\" already installed in \"$MONO_PATH\"!" if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then f_div_section - f_yes_no "Update/reinstall \"mod_mono-2.10\"? (\"y\" recommended)" + f_yes_no "Update/reinstall \"mod_mono-3.12\"? (\"y\" recommended)" f_div_section - UP_XSP=$YES_NO_R + UP_MOD_MONO=$YES_NO_R else - f_enter_to_cont "Install \"mod_mono-2.10\"!" + f_enter_to_cont "Install \"mod_mono-3.12\"!" fi - if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${UP_XSP} -eq 1 ] ; then - tar -xjf mod_mono-2.10.tar.bz2 - cd ./mod_mono-2.10 - ./configure --prefix=/opt/mono --with-mono-prefix=/opt/mono - make - make install + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${UP_MOD_MONO} -eq 1 ] ; then + tar -zxvf mod_mono-3.12.tar.gz + cd ./mod_mono-3.12 + ./configure --prefix=$MONO_PATH --with-mono-prefix=$MONO_PATH + make -j 4 && make install cd .. - rm -rf ./mod_mono-2.10 + rm -rf ./mod_mono-3.12 fi - service httpd restart + service $HTTPD_SERV_NAME restart &>/dev/null fi f_close_section @@ -460,14 +1048,23 @@ f_close_section # FINAL! # -------------------------------------- +ERROR_LOG_FL="" +if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]]; then + ERROR_LOG_FL="error_log" +elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then + ERROR_LOG_FL="error.log" +fi + EZ_I_SKIP_ON_V=0 read -d '' TITLE_F <<"EOF" Installer finished! Thanks! EOF USEFUL_INFO_F=" To start/stop... - service httpd start - service httpd stop + + Apache ($HTTPD_SERV_NAME) + service $HTTPD_SERV_NAME start + service $HTTPD_SERV_NAME stop To access... http:///docslightbase/apps/ @@ -476,10 +1073,10 @@ USEFUL_INFO_F=" To start/stop... 000.000.000-00/123456 To configure httpd (Apache)... - See \"/etc/httpd/conf.d\" folder! + See \"$HTTPD_CONF_PATH\" folder! Log... - less /var/log/httpd/error_log" + less $VAR_LOG_HTTPD/$ERROR_LOG_FL" f_end "$TITLE_F" "$USEFUL_INFO_F" TITLE_F="" diff --git a/lbd-src/.directory b/lbd-src/.directory new file mode 100755 index 0000000..eeef125 --- /dev/null +++ b/lbd-src/.directory @@ -0,0 +1,5 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2016,5,18,16,37,29 +Version=3 +ViewMode=1 diff --git a/lbd-src/.directory.lock b/lbd-src/.directory.lock new file mode 100755 index 0000000..576a1cd --- /dev/null +++ b/lbd-src/.directory.lock @@ -0,0 +1,3 @@ +11614 +dolphin +eduardo-nb diff --git a/other-srcs-n-apps/.directory b/other-srcs-n-apps/.directory new file mode 100755 index 0000000..1304a02 --- /dev/null +++ b/other-srcs-n-apps/.directory @@ -0,0 +1,5 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2016,5,18,12,16,47 +Version=3 +ViewMode=1 diff --git a/other-srcs-n-apps/.directory.lock b/other-srcs-n-apps/.directory.lock new file mode 100755 index 0000000..5435413 --- /dev/null +++ b/other-srcs-n-apps/.directory.lock @@ -0,0 +1,3 @@ +29601 +dolphin +eduardo-nb diff --git a/other-srcs-n-apps/lbdoc-httpd-conf.tar.gz b/other-srcs-n-apps/lbdoc-httpd-conf.tar.gz old mode 100755 new mode 100644 index 6f79d18..8df83b7 Binary files a/other-srcs-n-apps/lbdoc-httpd-conf.tar.gz and b/other-srcs-n-apps/lbdoc-httpd-conf.tar.gz differ diff --git a/other-srcs-n-apps/libgdiplus-4.2.tar.gz b/other-srcs-n-apps/libgdiplus-4.2.tar.gz new file mode 100755 index 0000000..dcaba3f Binary files /dev/null and b/other-srcs-n-apps/libgdiplus-4.2.tar.gz differ diff --git a/other-srcs-n-apps/mod_mono-2.10.tar.bz2 b/other-srcs-n-apps/mod_mono-2.10.tar.bz2 deleted file mode 100755 index 3f7a7dc..0000000 Binary files a/other-srcs-n-apps/mod_mono-2.10.tar.bz2 and /dev/null differ diff --git a/other-srcs-n-apps/mod_mono-3.12.tar.gz b/other-srcs-n-apps/mod_mono-3.12.tar.gz new file mode 100755 index 0000000..b99c9e0 Binary files /dev/null and b/other-srcs-n-apps/mod_mono-3.12.tar.gz differ diff --git a/other-srcs-n-apps/mono-2.10.2.tar.bz2 b/other-srcs-n-apps/mono-2.10.2.tar.bz2 deleted file mode 100755 index 9e0984d..0000000 Binary files a/other-srcs-n-apps/mono-2.10.2.tar.bz2 and /dev/null differ diff --git a/other-srcs-n-apps/mono-4.4.0.148.tar.bz2 b/other-srcs-n-apps/mono-4.4.0.148.tar.bz2 new file mode 100755 index 0000000..ca8d645 Binary files /dev/null and b/other-srcs-n-apps/mono-4.4.0.148.tar.bz2 differ diff --git a/other-srcs-n-apps/xsp-2.10.2.tar.bz2 b/other-srcs-n-apps/xsp-2.10.2.tar.bz2 deleted file mode 100755 index 148c28f..0000000 Binary files a/other-srcs-n-apps/xsp-2.10.2.tar.bz2 and /dev/null differ diff --git a/other-srcs-n-apps/xsp-4.2.tar.gz b/other-srcs-n-apps/xsp-4.2.tar.gz new file mode 100755 index 0000000..d906e09 Binary files /dev/null and b/other-srcs-n-apps/xsp-4.2.tar.gz differ -- libgit2 0.21.2