Commit b98a6c803a144a37c6db151970051fe24fe1c2e7

Authored by Eduardo Lúcio Amorim Costa
1 parent 9e84b2b7
Exists in master

Correção de vários bugs! Agora instalável no RedHat 6.X (ou baseado/CentOS 6.X),…

… Debian 8 (ou baseado/Ubuntu Server 14.X) e SUSE 12.X (ou baseado/openSUSE 13.X)! By Questor
.directory 0 → 100644
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
  1 +[Dolphin]
  2 +PreviewsShown=true
  3 +Timestamp=2016,5,13,17,57,48
  4 +Version=3
  5 +ViewMode=1
  6 +
  7 +[Settings]
  8 +HiddenFilesShown=true
LBIndex.tar.gz
No preview for this file type
@@ -273,8 +273,9 @@ f_pack_is_inst() { @@ -273,8 +273,9 @@ f_pack_is_inst() {
273 273
274 Args: 274 Args:
275 PACKAGE_NM_P (str): Nome do pacote. 275 PACKAGE_NM_P (str): Nome do pacote.
276 - PACK_MANAG (str): Tipo de gerenciador de pacotes. Apenas yum é  
277 - suportado. Em caso diverso o script exibe erro e para. 276 + PACK_MANAG (str): Tipo de gerenciador de pacotes. "yum",
  277 + "apt-get" e "zypper" são suportados. Em caso diverso o script
  278 + exibe erro e para.
278 EXIST_MSG_P (Optional[str]): Mensagem a ser exibida se o 279 EXIST_MSG_P (Optional[str]): Mensagem a ser exibida se o
279 pacote já estiver instalado. Se vazio ou não informado não será 280 pacote já estiver instalado. Se vazio ou não informado não será
280 exibida mensagem. 281 exibida mensagem.
@@ -309,6 +310,30 @@ f_pack_is_inst() { @@ -309,6 +310,30 @@ f_pack_is_inst() {
309 else 310 else
310 F_PACK_IS_INST_R=0 311 F_PACK_IS_INST_R=0
311 fi 312 fi
  313 + elif [ "$PACK_MANAG" == "apt-get" ] ; then
  314 + if dpkg -s "$PACKAGE_NM_P" &> /dev/null; then
  315 + if [ ${SKIP_MSG_P} -eq 0 ] && [ ! -z "$EXIST_MSG_P" ] ; then
  316 + f_div_section
  317 + echo "$EXIST_MSG_P"
  318 + f_div_section
  319 + f_enter_to_cont
  320 + fi
  321 + F_PACK_IS_INST_R=1
  322 + else
  323 + F_PACK_IS_INST_R=0
  324 + fi
  325 + elif [ "$PACK_MANAG" == "zypper" ] ; then
  326 + if zypper se -i --match-word "$PACKAGE_NM_P" > /dev/null 2>&1; then
  327 + if [ ${SKIP_MSG_P} -eq 0 ] && [ ! -z "$EXIST_MSG_P" ] ; then
  328 + f_div_section
  329 + echo "$EXIST_MSG_P"
  330 + f_div_section
  331 + f_enter_to_cont
  332 + fi
  333 + F_PACK_IS_INST_R=1
  334 + else
  335 + F_PACK_IS_INST_R=0
  336 + fi
312 else 337 else
313 f_div_section 338 f_div_section
314 echo "ERROR! Not implemented for \"$PACK_MANAG\"!" 339 echo "ERROR! Not implemented for \"$PACK_MANAG\"!"
@@ -462,6 +487,7 @@ f_is_not_running() { @@ -462,6 +487,7 @@ f_is_not_running() {
462 CHK_INVERT=0 487 CHK_INVERT=0
463 fi 488 fi
464 F_IS_NOT_RUNNING_R=0 489 F_IS_NOT_RUNNING_R=0
  490 +
465 # NOTE: A verificação "grep -v grep" é para que ele não dê positivo 491 # NOTE: A verificação "grep -v grep" é para que ele não dê positivo
466 # para o próprio comando grep! By Questor 492 # para o próprio comando grep! By Questor
467 F_IS_NOT_RUNNING_R=0 493 F_IS_NOT_RUNNING_R=0
@@ -484,6 +510,7 @@ f_is_not_running() { @@ -484,6 +510,7 @@ f_is_not_running() {
484 510
485 F_GET_STDERR_R="" 511 F_GET_STDERR_R=""
486 F_GET_STDOUT_R="" 512 F_GET_STDOUT_R=""
  513 +F_GET_EXIT_CODE_R=0
487 f_get_stderr_stdout() { 514 f_get_stderr_stdout() {
488 : 'Executar um comando e colocar a saída de stderr e stdout nas 515 : 'Executar um comando e colocar a saída de stderr e stdout nas
489 variáveis "F_GET_STDERR_R" e "F_GET_STDOUT_R"!. 516 variáveis "F_GET_STDERR_R" e "F_GET_STDOUT_R"!.
@@ -499,8 +526,9 @@ f_get_stderr_stdout() { @@ -499,8 +526,9 @@ f_get_stderr_stdout() {
499 CMD_TO_EXEC=$1 526 CMD_TO_EXEC=$1
500 F_GET_STDERR_R="" 527 F_GET_STDERR_R=""
501 F_GET_STDOUT_R="" 528 F_GET_STDOUT_R=""
502 - unset t_std t_err  
503 - eval "$( eval "$CMD_TO_EXEC" 2> >(t_err=$(cat); typeset -p t_err) > >(t_std=$(cat); typeset -p t_std) )" 529 + unset t_std t_err t_ret
  530 + 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 )"
  531 + F_GET_EXIT_CODE_R=$t_ret
504 F_GET_STDERR_R=$t_err 532 F_GET_STDERR_R=$t_err
505 F_GET_STDOUT_R=$t_std 533 F_GET_STDOUT_R=$t_std
506 } 534 }
@@ -536,7 +564,6 @@ f_ez_mv_bak() { @@ -536,7 +564,6 @@ f_ez_mv_bak() {
536 SKIP_MSG_P=1 564 SKIP_MSG_P=1
537 fi 565 fi
538 566
539 -  
540 MK_BAK=1 567 MK_BAK=1
541 F_BAK_PATH_R="" 568 F_BAK_PATH_R=""
542 F_BAK_NAME_R="" 569 F_BAK_NAME_R=""
@@ -565,6 +592,8 @@ f_error_exit() { @@ -565,6 +592,8 @@ f_error_exit() {
565 ERROR_CAUSE_P (Optional[str]): Causa do erro. 592 ERROR_CAUSE_P (Optional[str]): Causa do erro.
566 ' 593 '
567 594
  595 + EZ_I_S_ON_HOLDER=$EZ_I_SKIP_ON_V
  596 + EZ_I_SKIP_ON_V=0
568 ERROR_CAUSE_P=$1 597 ERROR_CAUSE_P=$1
569 echo 598 echo
570 f_open_section "E R R O R !" 599 f_open_section "E R R O R !"
@@ -575,9 +604,40 @@ f_error_exit() { @@ -575,9 +604,40 @@ f_error_exit() {
575 echo "$ERROR_MSG_NOW_P" 604 echo "$ERROR_MSG_NOW_P"
576 echo 605 echo
577 f_close_section 606 f_close_section
  607 + EZ_I_SKIP_ON_V=$EZ_I_S_ON_HOLDER
578 exit 1 608 exit 1
579 } 609 }
580 610
  611 +f_warning_msg() {
  612 + : '"Printa" uma mensagem de aviso.
  613 +
  614 + Args:
  615 + WARNING_P (str): aviso.
  616 + ASK_FOR_CONT_P (Optional[int]): 1 - Checa se o usuário deseja
  617 + continuar com a instalação; 0 - Solicita que pressione "enter".
  618 + Padrão 0.
  619 + '
  620 +
  621 + EZ_I_S_ON_HOLDER=$EZ_I_SKIP_ON_V
  622 + EZ_I_SKIP_ON_V=0
  623 + WARNING_P=$1
  624 + ASK_FOR_CONT_P=$2
  625 + if [ -z "$ASK_FOR_CONT_P" ] ; then
  626 + ASK_FOR_CONT_P=0
  627 + fi
  628 + echo
  629 + f_open_section "W A R N I N G !"
  630 + echo "$WARNING_P"
  631 + echo
  632 + f_close_section
  633 + if [ ${ASK_FOR_CONT_P} -eq 0 ] ; then
  634 + f_enter_to_cont
  635 + else
  636 + f_continue
  637 + fi
  638 + EZ_I_SKIP_ON_V=$EZ_I_S_ON_HOLDER
  639 +}
  640 +
581 f_continue() { 641 f_continue() {
582 : 'Questionar ao usuário se deseja continuar ou parar a instalação. 642 : 'Questionar ao usuário se deseja continuar ou parar a instalação.
583 643
@@ -600,8 +660,343 @@ f_continue() { @@ -600,8 +660,343 @@ f_continue() {
600 fi 660 fi
601 } 661 }
602 662
  663 +F_SPLIT_R=()
  664 +f_split() {
  665 + : 'Faz "split" em uma dada string e devolve um array.
603 666
604 -# < -------------------------------------------------------------------------- 667 + Args:
  668 + TARGET_P (str): String alvo do "split".
  669 + DELIMITER_P (Optional[str]): Delimitador usado no "split".
  670 + Se não informado o split vai ser feito por espaços em branco.
  671 +
  672 + Returns:
  673 + F_SPLIT_R (array): Array com a string fornecida separada pelo
  674 + delimitador informado.
  675 + '
  676 +
  677 + F_SPLIT_R=()
  678 + TARGET_P=$1
  679 + DELIMITER_P=$2
  680 + if [ -z "$DELIMITER_P" ] ; then
  681 + DELIMITER_P=" "
  682 + fi
  683 +
  684 + REMOVE_N=1
  685 + if [ "$DELIMITER_P" == "\n" ] ; then
  686 + REMOVE_N=0
  687 + fi
  688 +
  689 + if [ ${REMOVE_N} -eq 1 ] ; then
  690 +
  691 + # NOTE: Devido a limitações do bash temos alguns problemas para
  692 + # poder obter a saída de um split via awk dentro de um array e
  693 + # por isso precisamos do uso da "quebra de linha" (\n) para
  694 + # termos sucesso! Visto isso, removemos as quebras de linha
  695 + # momentaneamente depois as reintegramos! By Questor
  696 + TARGET_P=$(echo "$TARGET_P" | awk 'BEGIN {RS="dn" } {gsub("\n","£§¢¬¨") ;printf $0 }')
  697 + fi
  698 +
  699 + SPLIT_NOW=$(awk -F"$DELIMITER_P" '{for(i=1;i<=NF;i++){printf "%s\n", $i}}' <<<"${TARGET_P}")
  700 +
  701 + while IFS= read -r LINE_NOW; do
  702 + if [ ${REMOVE_N} -eq 1 ] ; then
  703 + LN_NOW_WITH_N=$(awk 'BEGIN {RS="dn"} {gsub("£§¢¬¨","\n") ;printf $0 }' <<<"${LINE_NOW}")
  704 + F_SPLIT_R+=("$LN_NOW_WITH_N")
  705 + else
  706 + F_SPLIT_R+=("$LINE_NOW")
  707 + fi
  708 + done <<< "$SPLIT_NOW"
  709 +}
  710 +
  711 +F_ABOUT_DISTRO_R=()
  712 +f_about_distro() {
  713 + : 'Obter informações sobre a distro.
  714 +
  715 + Returns:
  716 + F_ABOUT_DISTRO_R (array): Array com informações sobre a
  717 + distro na seguinte ordem: NAME, VERSION, BASED e ARCH.
  718 + '
  719 +
  720 + F_ABOUT_DISTRO_R=()
  721 + f_get_stderr_stdout "cat /etc/*-release"
  722 + ABOUT_INFO=$F_GET_STDOUT_R
  723 +
  724 + if [[ $ABOUT_INFO == *"ID=debian"* ]] ; then
  725 + f_split "$ABOUT_INFO" "\n"
  726 + F_SPLIT_R_0=("${F_SPLIT_R[@]}")
  727 + TOTAL_0=${#F_SPLIT_R_0[*]}
  728 + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do
  729 + f_split "${F_SPLIT_R_0[$i]}" "="
  730 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  731 + TOTAL_1=${#F_SPLIT_R_1[*]}
  732 + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do
  733 + p=$[$o+1]
  734 + case "${F_SPLIT_R_1[$o]}" in
  735 + "NAME")
  736 + f_split "${F_SPLIT_R_1[$p]}" "\""
  737 + F_SPLIT_R_2=("${F_SPLIT_R[@]}")
  738 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_2[1]}")
  739 + ;;
  740 + "VERSION_ID")
  741 + f_split "${F_SPLIT_R_1[$p]}" "\""
  742 + F_SPLIT_R_3=("${F_SPLIT_R[@]}")
  743 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_3[1]}")
  744 + ;;
  745 + *)
  746 +
  747 + ;;
  748 + esac
  749 + done
  750 + done
  751 + F_ABOUT_DISTRO_R+=("Debian")
  752 + elif [[ $ABOUT_INFO == *"ID=\"sles\""* ]] ; then
  753 + f_split "$ABOUT_INFO" "\n"
  754 + F_SPLIT_R_0=("${F_SPLIT_R[@]}")
  755 + TOTAL_0=${#F_SPLIT_R_0[*]}
  756 + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do
  757 + f_split "${F_SPLIT_R_0[$i]}" "="
  758 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  759 + TOTAL_1=${#F_SPLIT_R_1[*]}
  760 + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do
  761 + p=$[$o+1]
  762 + case "${F_SPLIT_R_1[$o]}" in
  763 + "NAME")
  764 + f_split "${F_SPLIT_R_1[$p]}" "\""
  765 + F_SPLIT_R_2=("${F_SPLIT_R[@]}")
  766 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_2[1]}")
  767 + ;;
  768 + "VERSION_ID")
  769 + f_split "${F_SPLIT_R_1[$p]}" "\""
  770 + F_SPLIT_R_3=("${F_SPLIT_R[@]}")
  771 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_3[1]}")
  772 + ;;
  773 + *)
  774 +
  775 + ;;
  776 + esac
  777 + done
  778 + done
  779 + F_ABOUT_DISTRO_R+=("Suse")
  780 + elif [[ $ABOUT_INFO == *"ID=opensuse"* ]] ||
  781 + [[ $ABOUT_INFO == *"ID_LIKE=\"suse\""* ]] ; then
  782 + f_split "$ABOUT_INFO" "\n"
  783 + F_SPLIT_R_0=("${F_SPLIT_R[@]}")
  784 + TOTAL_0=${#F_SPLIT_R_0[*]}
  785 + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do
  786 + f_split "${F_SPLIT_R_0[$i]}" "="
  787 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  788 + TOTAL_1=${#F_SPLIT_R_1[*]}
  789 + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do
  790 + p=$[$o+1]
  791 + case "${F_SPLIT_R_1[$o]}" in
  792 + "NAME")
  793 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[$p]}")
  794 + ;;
  795 + "VERSION_ID")
  796 + f_split "${F_SPLIT_R_1[$p]}" "\""
  797 + F_SPLIT_R_3=("${F_SPLIT_R[@]}")
  798 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_3[1]}")
  799 + ;;
  800 + *)
  801 +
  802 + ;;
  803 + esac
  804 + done
  805 + done
  806 + F_ABOUT_DISTRO_R+=("Suse")
  807 + elif [[ $ABOUT_INFO == *"DISTRIB_ID=Ubuntu"* ]] ||
  808 + [[ $ABOUT_INFO == *"ID_LIKE=debian"* ]] ; then
  809 + f_split "$ABOUT_INFO" "\n"
  810 + F_SPLIT_R_0=("${F_SPLIT_R[@]}")
  811 + TOTAL_0=${#F_SPLIT_R_0[*]}
  812 + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do
  813 + f_split "${F_SPLIT_R_0[$i]}" "="
  814 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  815 + TOTAL_1=${#F_SPLIT_R_1[*]}
  816 + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do
  817 + p=$[$o+1]
  818 + case "${F_SPLIT_R_1[$o]}" in
  819 + "DISTRIB_ID")
  820 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[$p]}")
  821 + ;;
  822 + "DISTRIB_RELEASE")
  823 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[$p]}")
  824 + ;;
  825 + *)
  826 +
  827 + ;;
  828 + esac
  829 + done
  830 + done
  831 + F_ABOUT_DISTRO_R+=("Debian")
  832 + elif [[ $ABOUT_INFO == *"CentOS release "* ]] ; then
  833 + f_split "$ABOUT_INFO" "\n"
  834 + F_SPLIT_R_0=("${F_SPLIT_R[1]}")
  835 + f_split "${F_SPLIT_R_0[0]}" " "
  836 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  837 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[0]}")
  838 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[2]}")
  839 + F_ABOUT_DISTRO_R+=("RedHat")
  840 + elif [[ $ABOUT_INFO == *"Red Hat Enterprise Linux Server release "* ]] ; then
  841 + f_split "$ABOUT_INFO" "\n"
  842 + F_SPLIT_R_0=("${F_SPLIT_R[1]}")
  843 + f_split "${F_SPLIT_R_0[0]}" " "
  844 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  845 + F_ABOUT_DISTRO_R+=("Red Hat Enterprise Linux Server")
  846 + F_ABOUT_DISTRO_R+=("${F_SPLIT_R_1[6]}")
  847 + F_ABOUT_DISTRO_R+=("RedHat")
  848 + else
  849 + F_ABOUT_DISTRO_R+=("Unknown")
  850 + F_ABOUT_DISTRO_R+=("Unknown")
  851 + F_ABOUT_DISTRO_R+=("Unknown")
  852 + fi
  853 + F_ABOUT_DISTRO_R+=($(arch))
  854 +}
  855 +
  856 +F_IS_ROOT_R=1
  857 +f_is_root() {
  858 + : 'Checar se o usuário é root.
  859 +
  860 + Args:
  861 + CHK_ONLY_P (Optional[int]): 1 - Apenas verifica e retorna o
  862 + resultado; 0 - Se não for root emite erro e encerra a execução.
  863 + Padrão 0.
  864 +
  865 + Returns:
  866 + F_IS_ROOT_R (int): 1 - É root; 0 - Não é root.
  867 + '
  868 +
  869 + CHK_ONLY_P=$1
  870 + if [ -z "$CHK_ONLY_P" ] ; then
  871 + CHK_ONLY_P=0
  872 + fi
  873 +
  874 + F_IS_ROOT_R=1
  875 + if [[ $EUID -ne 0 ]]; then
  876 + f_enter_to_cont "ERROR! You need to be root!"
  877 + F_IS_ROOT_R=0
  878 + if [ ${CHK_ONLY_P} -eq 0 ] ; then
  879 + f_error_exit
  880 + fi
  881 + fi
  882 +}
  883 +
  884 +F_CHK_DISTRO_STATUS_R=""
  885 +f_chk_distro_status() {
  886 + : 'Verifica se a distro informada está subscrita e/ou registrada
  887 + e/ou ativa perante os recursos informados.
  888 +
  889 + Args:
  890 + DISTRO_NAME_P (str): Nome da distro sobre a qual será executada
  891 + verificação.
  892 + RESOURCES_ARR_P (str): Array com a lista de recursos a serem
  893 + verificados na distro alvo.
  894 +
  895 + Returns:
  896 + F_CHK_DISTRO_STATUS_R (str): Possui a saída do comando de
  897 + verificação executado.
  898 + '
  899 +
  900 + F_CHECK_RHEL_R=""
  901 + DISTRO_NAME_P=$1
  902 + RESOURCES_ARR_P=("${!2}")
  903 + TOTAL_2=${#RESOURCES_ARR_P[*]}
  904 +
  905 + RES_OK_ARR=()
  906 + REDHAT_ACTV=0
  907 +
  908 + CHK_RES_CMD=""
  909 + if [ "$DISTRO_NAME_P" == "RedHat" ] ; then
  910 + CHK_RES_CMD="subscription-manager list --consumed"
  911 + f_get_stderr_stdout "$CHK_RES_CMD"
  912 + f_split "$F_GET_STDOUT_R" "Subscription Name:"
  913 + elif [ "$DISTRO_NAME_P" == "SLES" ] ; then
  914 + CHK_RES_CMD="zypper sl"
  915 + f_get_stderr_stdout "$CHK_RES_CMD"
  916 + f_split "$F_GET_STDOUT_R" "\n"
  917 + fi
  918 +
  919 + F_SPLIT_R_0=("${F_SPLIT_R[@]}")
  920 + TOTAL_0=${#F_SPLIT_R_0[*]}
  921 + for (( i=0; i<=$(( $TOTAL_0 -1 )); i++ )) ; do
  922 + if [[ "$DISTRO_NAME_P" == "RedHat" ]] ; then
  923 + f_split "${F_SPLIT_R_0[$i]}" "\n"
  924 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  925 + TOTAL_1=${#F_SPLIT_R_1[*]}
  926 + CHK_ACTV=0
  927 + for (( o=0; o<=$(( $TOTAL_1 -1 )); o++ )) ; do
  928 + if [[ "${F_SPLIT_R_1[$o]}" == "Provides:"* ]] ; then
  929 + CHK_ACTV=1
  930 + fi
  931 + if [ ${CHK_ACTV} -eq 1 ] ; then
  932 + for (( w=0; w<=$(( $TOTAL_2 -1 )); w++ )) ; do
  933 + if [[ "${F_SPLIT_R_1[$o]}" == *"${RESOURCES_ARR_P[$w]}" ]] ; then
  934 + RES_OK_ARR+=($w)
  935 + break
  936 + fi
  937 + done
  938 + if [ ${REDHAT_ACTV} -eq 0 ] &&
  939 + [[ "${F_SPLIT_R_1[$o]}" == "Active:"* ]] &&
  940 + [[ "${F_SPLIT_R_1[$o]}" == *"True" ]] ; then
  941 + REDHAT_ACTV=1
  942 + fi
  943 + fi
  944 + done
  945 + elif [[ "$DISTRO_NAME_P" == "SLES" ]] ; then
  946 + REDHAT_ACTV=1
  947 + f_split "${F_SPLIT_R_0[$i]}" "|"
  948 + F_SPLIT_R_1=("${F_SPLIT_R[@]}")
  949 + for (( w=0; w<=$(( $TOTAL_2 -1 )); w++ )) ; do
  950 + if [[ "${F_SPLIT_R_1[1]}" == *"${RESOURCES_ARR_P[$w]}"* ]] ; then
  951 + if [[ "${F_SPLIT_R_1[3]}" == *"Yes"* ]] ; then
  952 + if [[ "${F_SPLIT_R_1[5]}" == *"Yes"* ]] ; then
  953 + RES_OK_ARR+=($w)
  954 + break
  955 + fi
  956 + fi
  957 + fi
  958 + done
  959 + fi
  960 + done
  961 +
  962 + WARNINGS_MSGS=()
  963 + TOTAL_3=${#RES_OK_ARR[*]}
  964 + for (( z=0; z<=$(( $TOTAL_2 -1 )); z++ )) ; do
  965 + RES_OK_NOW=1
  966 + for (( t=0; t<=$(( $TOTAL_3 -1 )); t++ )) ; do
  967 + if (( ${RES_OK_ARR[$t]} == $z )); then
  968 + RES_OK_NOW=0
  969 + break
  970 + fi
  971 + done
  972 + if (( $RES_OK_NOW == 1 )); then
  973 + WARNINGS_MSGS+=("$DISTRO_NAME_P does not have access to this resource: \"${RESOURCES_ARR_P[$z]}\".")
  974 + fi
  975 + done
  976 +
  977 + TOTAL_4=${#WARNINGS_MSGS[*]}
  978 + WAR_MSGS_STR=""
  979 + USE_NEWLINE=""
  980 + if [ ! $TOTAL_4 -eq 0 ] || [ $REDHAT_ACTV -eq 0 ]; then
  981 + WAR_MSGS_STR="SOME PROBLEM APPEAR TO HAVE BEEN DETECTED ON "
  982 + if [[ "$DISTRO_NAME_P" == "RedHat" ]] ; then
  983 + WAR_MSGS_STR+="REDHAT SUBSCRIPTION!"
  984 + elif [[ "$DISTRO_NAME_P" == "SLES" ]] ; then
  985 + WAR_MSGS_STR+="SLES REGISTRATION!"
  986 + fi
  987 + for (( y=0; y<=$(( $TOTAL_4 -1 )); y++ )) ; do
  988 + if (( $y == 0 )); then
  989 + WAR_MSGS_STR+=$'\n\n'
  990 + else
  991 + USE_NEWLINE=$'\n'
  992 + fi
  993 + WAR_MSGS_STR+="$USE_NEWLINE -> ${WARNINGS_MSGS[$y]}"
  994 + done
  995 + WAR_MSGS_STR+=$'\n\n'"FOR MORE INFORMATION TRY: \"$CHK_RES_CMD\"."
  996 + f_warning_msg "$WAR_MSGS_STR" 1
  997 + fi
  998 + F_CHK_DISTRO_STATUS_R=$F_GET_STDOUT_R
  999 +}
605 1000
606 # > -------------------------------------------------------------------------- 1001 # > --------------------------------------------------------------------------
607 # GRAFICO! 1002 # GRAFICO!
1 #!/bin/bash 1 #!/bin/bash
2 2
  3 +# > -----------------------------------------
  4 +# Run that script with bash even if the user use sh/dash or any sh like
  5 +# interpreter. This way it correctly works with either:
  6 +# "sh ./my_script.sh" or "bash ./my_script.sh" or "./my_script.sh"
  7 +
  8 +if [ -z "$BASH_VERSION" ]
  9 +then
  10 + exec bash "$0" "$@"
  11 +fi
  12 +
  13 +# < -----------------------------------------
  14 +
3 # NOTE: Evita problemas com caminhos relativos! By Questor 15 # NOTE: Evita problemas com caminhos relativos! By Questor
4 SCRIPTDIR_V="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 16 SCRIPTDIR_V="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 . $SCRIPTDIR_V/ez_i.sh 17 . $SCRIPTDIR_V/ez_i.sh
@@ -23,17 +35,27 @@ Have fun! =D @@ -23,17 +35,27 @@ Have fun! =D
23 EOF 35 EOF
24 36
25 read -d '' WARNINGS_F <<"EOF" 37 read -d '' WARNINGS_F <<"EOF"
26 -- Installer designed for CentOS 6 AMD64/RHEL 6 AMD64! 38 +- This installer is compatible with RHEL, SUSE, Debian or distributions
  39 +based on these.
27 40
28 - We RECOMMEND you... 41 - We RECOMMEND you...
29 Install all the components (answer yes to everything). Except 42 Install all the components (answer yes to everything). Except
30 contrary guidance! 43 contrary guidance!
31 Check for previous installations! If there is previous 44 Check for previous installations! If there is previous
32 installations consider this variant in the process! 45 installations consider this variant in the process!
  46 + Although this is not mandatory, do the installation process in an
  47 + exclusive machine for this.
  48 +
  49 +- We NOTICE you...
  50 + This installer assumes that the target distribution has a "standard
  51 + setup". This may include components such as firewall, SELinux
  52 + and others.
  53 +
33 - We WARNING you... 54 - We WARNING you...
34 - USE AT YOUR OWN RISK: WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO  
35 -YOURSELF, HARDWARE, OR CO-WORKERS. EXCEPT IN CASES WHERE THERE ARE  
36 -SIGNED CONTRACT THAT REGULATES THIS! 55 + THIS INSTALLER AND RESULTING PRODUCTS COMES WITH ABSOLUTELY NO WARRANTY!
  56 + USE AT YOUR OWN RISK! WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO YOURSELF,
  57 + HARDWARE, OR CO-WORKERS. EXCEPT IN CASES WHERE THERE ARE SIGNED CONTRACT
  58 + THAT REGULATES THIS!
37 EOF 59 EOF
38 60
39 read -d '' COMPANY_F <<"EOF" 61 read -d '' COMPANY_F <<"EOF"
@@ -53,7 +75,8 @@ WARNINGS_F=&quot;&quot; @@ -53,7 +75,8 @@ WARNINGS_F=&quot;&quot;
53 # -------------------------------------- 75 # --------------------------------------
54 76
55 read -d '' TERMS_LICEN_F <<"EOF" 77 read -d '' TERMS_LICEN_F <<"EOF"
56 -BY USING THIS INSTALLER YOU ARE AGREEING TO THE TERMS OF USE OF ALL INVOLVED SOFTWARE! 78 +BY USING THIS INSTALLER YOU ARE AGREEING TO THE TERMS OF USE OF ALL
  79 +INVOLVED SOFTWARE!
57 EOF 80 EOF
58 81
59 f_terms_licen "$TERMS_LICEN_F" 82 f_terms_licen "$TERMS_LICEN_F"
@@ -61,13 +84,18 @@ TERMS_LICEN_F=&quot;&quot; @@ -61,13 +84,18 @@ TERMS_LICEN_F=&quot;&quot;
61 84
62 # < -------------------------------------------------------------------------- 85 # < --------------------------------------------------------------------------
63 86
  87 +# > -----------------------------------------
  88 +# Checar se o usuário é root!
  89 +
  90 +f_is_root
  91 +
  92 +# < -----------------------------------------
  93 +
64 # > -------------------------------------------------------------------------- 94 # > --------------------------------------------------------------------------
65 # INTRUÇÕES! 95 # INTRUÇÕES!
66 # -------------------------------------- 96 # --------------------------------------
67 97
68 read -d '' INSTRUCT_F <<"EOF" 98 read -d '' INSTRUCT_F <<"EOF"
69 -- To run this script YOU NEED to be root!  
70 -  
71 - TO CANCEL installation at any time use Ctrl+c! 99 - TO CANCEL installation at any time use Ctrl+c!
72 EOF 100 EOF
73 101
@@ -76,6 +104,128 @@ INSTRUCT_F=&quot;&quot; @@ -76,6 +104,128 @@ INSTRUCT_F=&quot;&quot;
76 104
77 # < -------------------------------------------------------------------------- 105 # < --------------------------------------------------------------------------
78 106
  107 +DISTRO_TYPE=""
  108 +DISTRO_NAME=""
  109 +# > -----------------------------------------
  110 +# Checar se a distro é compatível!
  111 +
  112 +f_open_section
  113 +f_about_distro
  114 +f_div_section
  115 +echo "DISTRO INFORMATION:"
  116 +f_div_section
  117 +echo "NAME: .... ${F_ABOUT_DISTRO_R[0]}"
  118 +echo "VERSION: . ${F_ABOUT_DISTRO_R[1]}"
  119 +echo "BASED: ... ${F_ABOUT_DISTRO_R[2]}"
  120 +echo "ARCH: .... ${F_ABOUT_DISTRO_R[3]}"
  121 +f_div_section
  122 +
  123 +if [[ "${F_ABOUT_DISTRO_R[2]}" == "Debian" ]] || [[ "${F_ABOUT_DISTRO_R[2]}" == "RedHat" ]] ||
  124 + [[ "${F_ABOUT_DISTRO_R[2]}" == "Suse" ]] ; then
  125 + if [[ "${F_ABOUT_DISTRO_R[2]}" == "Debian" ]] ; then
  126 + DISTRO_TYPE="DEB"
  127 + if [[ "${F_ABOUT_DISTRO_R[0]}" == "Ubuntu" ]] ; then
  128 + DISTRO_NAME="Ubuntu"
  129 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "14.04" ]] ; then
  130 + f_div_section
  131 + f_yes_no "Linux version may be incompatible with this installer (expected: 14.04/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  132 + f_div_section
  133 + if [ ${YES_NO_R} -eq 0 ] ; then
  134 + exit 0
  135 + fi
  136 + fi
  137 + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "Debian GNU/Linux" ]] ; then
  138 + DISTRO_NAME="Debian"
  139 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "8" ]] ; then
  140 + f_div_section
  141 + f_yes_no "Linux version may be incompatible with this installer (expected: 8/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  142 + f_div_section
  143 + if [ ${YES_NO_R} -eq 0 ] ; then
  144 + exit 0
  145 + fi
  146 + fi
  147 + else
  148 + f_div_section
  149 + f_yes_no "Linux distro may be incompatible with this installer (expected: Ubuntu or Debian/obtained: ${F_ABOUT_DISTRO_R[0]})! Continue?"
  150 + f_div_section
  151 + if [ ${YES_NO_R} -eq 0 ] ; then
  152 + exit 0
  153 + fi
  154 + fi
  155 + elif [[ "${F_ABOUT_DISTRO_R[2]}" == "RedHat" ]] ; then
  156 + DISTRO_TYPE="RH"
  157 + if [[ "${F_ABOUT_DISTRO_R[0]}" == "Red Hat Enterprise Linux Server" ]] ; then
  158 + DISTRO_NAME="RedHat"
  159 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "6."* ]] ; then
  160 + f_div_section
  161 + f_yes_no "Linux version may be incompatible with this installer (expected: 6.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  162 + f_div_section
  163 + if [ ${YES_NO_R} -eq 0 ] ; then
  164 + exit 0
  165 + fi
  166 + fi
  167 + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "CentOS" ]] ; then
  168 + DISTRO_NAME="CentOS"
  169 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "6."* ]] ; then
  170 + f_div_section
  171 + f_yes_no "Linux version may be incompatible with this installer (expected: 6.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  172 + f_div_section
  173 + if [ ${YES_NO_R} -eq 0 ] ; then
  174 + exit 0
  175 + fi
  176 + fi
  177 + else
  178 + f_div_section
  179 + 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?"
  180 + f_div_section
  181 + if [ ${YES_NO_R} -eq 0 ] ; then
  182 + exit 0
  183 + fi
  184 + fi
  185 + elif [[ "${F_ABOUT_DISTRO_R[2]}" == "Suse" ]] ; then
  186 + DISTRO_TYPE="SUSE"
  187 + if [[ "${F_ABOUT_DISTRO_R[0]}" == "openSUSE" ]] ; then
  188 + DISTRO_NAME="openSUSE"
  189 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "13."* ]] ; then
  190 + f_div_section
  191 + f_yes_no "Linux version may be incompatible with this installer (expected: 13.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  192 + f_div_section
  193 + if [ ${YES_NO_R} -eq 0 ] ; then
  194 + exit 0
  195 + fi
  196 + fi
  197 + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "SLES" ]] ; then
  198 + DISTRO_NAME="SLES"
  199 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "12."* ]] ; then
  200 + f_div_section
  201 + f_yes_no "Linux version may be incompatible with this installer (expected: 12.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  202 + f_div_section
  203 + if [ ${YES_NO_R} -eq 0 ] ; then
  204 + exit 0
  205 + fi
  206 + fi
  207 + else
  208 + f_div_section
  209 + 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?"
  210 + f_div_section
  211 + if [ ${YES_NO_R} -eq 0 ] ; then
  212 + exit 0
  213 + fi
  214 + fi
  215 + fi
  216 +
  217 + if [[ "${F_ABOUT_DISTRO_R[3]}" != "x86_64" ]] ; then
  218 + f_enter_to_cont "Linux architecture completely incompatible with this installer (expected: x86_64/obtained: ${F_ABOUT_DISTRO_R[3]})!"
  219 + exit 0
  220 + fi
  221 +else
  222 + 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]})!"
  223 + exit 0
  224 +fi
  225 +f_close_section
  226 +
  227 +# < -----------------------------------------
  228 +
79 # > ----------------------------------------- 229 # > -----------------------------------------
80 # Dá ao usuário mais avançado a possibilideade de usar o instalador 230 # Dá ao usuário mais avançado a possibilideade de usar o instalador
81 # simplificado! 231 # simplificado!
@@ -85,7 +235,7 @@ INSTRUCT_F=&quot;&quot; @@ -85,7 +235,7 @@ INSTRUCT_F=&quot;&quot;
85 SIMPLE_INST=0 235 SIMPLE_INST=0
86 if [ ${SIMPLE_INST} -eq 0 ] ; then 236 if [ ${SIMPLE_INST} -eq 0 ] ; then
87 f_open_section 237 f_open_section
88 - f_yes_no "Use simple install (using a default value for most of the options)?" 238 + f_yes_no "Use simple install (use default values for most of the options)?"
89 if [ ${YES_NO_R} -eq 1 ] ; then 239 if [ ${YES_NO_R} -eq 1 ] ; then
90 240
91 # NOTE: Essa variável serve apenas para "preservar" o valor 241 # NOTE: Essa variável serve apenas para "preservar" o valor
@@ -110,77 +260,93 @@ fi @@ -110,77 +260,93 @@ fi
110 # Garantir o encodamento correto para evitar problemas de 260 # Garantir o encodamento correto para evitar problemas de
111 # compatibilidade! 261 # compatibilidade!
112 262
113 -EZ_I_SKIP_ON_V=$SIMPLE_INST  
114 -f_open_section  
115 -read -d '' TITLE_F <<"EOF"  
116 -Set terminal encode? (recommended for Windows terminal clients)  
117 -EOF  
118 -  
119 -f_yes_no "$TITLE_F"  
120 -TITLE_F=""  
121 -if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then  
122 - export LANG=pt_BR.utf8 263 +if [ ${SIMPLE_INST} -eq 0 ] ; then
  264 + EZ_I_SKIP_ON_V=$SIMPLE_INST
  265 + f_open_section
  266 + f_yes_no "Set terminal encode? (in some cases recommended for Windows ssh clients)"
  267 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  268 + export LANG=pt_BR.utf8
  269 + fi
  270 + f_close_section
123 fi 271 fi
124 -f_close_section  
125 272
126 # < ----------------------------------------- 273 # < -----------------------------------------
127 274
128 # > ----------------------------------------- 275 # > -----------------------------------------
129 # Desabilita o SElinux! 276 # Desabilita o SElinux!
130 277
131 -EZ_I_SKIP_ON_V=0  
132 -f_open_section  
133 -read -d '' TITLE_F <<"EOF"  
134 -Disable SElinux (use "y" if you never did it)?  
135 -EOF  
136 -  
137 -f_yes_no "$TITLE_F"  
138 -TITLE_F=""  
139 -if [ ${YES_NO_R} -eq 1 ] ; then  
140 - setenforce 0  
141 -  
142 - # NOTE: As condições abaixo visam evitar que o arquivo seja  
143 - # desnecessariamente e erroneamente modificado! By Questor  
144 - EZ_I_SKIP_ON_V=$SIMPLE_INST  
145 - f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!" 278 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
146 EZ_I_SKIP_ON_V=0 279 EZ_I_SKIP_ON_V=0
147 - if [ ${FL_CONT_STR_R} -eq 0 ] ; then  
148 - f_fl_cont_str "SELINUX=disabled" "/etc/sysconfig/selinux" 280 + f_open_section
  281 + f_yes_no "Disable SElinux (use "y" if you never did it)?"
  282 + if [ ${YES_NO_R} -eq 1 ] ; then
  283 + setenforce 0
  284 +
  285 + # NOTE: As condições abaixo visam evitar que o arquivo seja
  286 + # desnecessariamente e erroneamente modificado! By Questor
  287 + EZ_I_SKIP_ON_V=$SIMPLE_INST
  288 + f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!"
  289 + EZ_I_SKIP_ON_V=0
149 if [ ${FL_CONT_STR_R} -eq 0 ] ; then 290 if [ ${FL_CONT_STR_R} -eq 0 ] ; then
150 - f_ez_sed "SELINUX=enforcing" "# SELINUX=enforcing\nSELINUX=disabled" "/etc/sysconfig/selinux" 291 + f_fl_cont_str "SELINUX=disabled" "/etc/sysconfig/selinux"
  292 + if [ ${FL_CONT_STR_R} -eq 0 ] ; then
  293 + f_ez_sed "SELINUX=enforcing" "# SELINUX=enforcing\nSELINUX=disabled" "/etc/sysconfig/selinux"
  294 + fi
151 fi 295 fi
152 fi 296 fi
  297 + f_close_section
153 fi 298 fi
154 -f_close_section  
155 299
156 # < ----------------------------------------- 300 # < -----------------------------------------
157 301
158 # > ----------------------------------------- 302 # > -----------------------------------------
159 -# Instala os componentes de base usados pelo LBI - LBIndex! 303 +# Atualizar a distro (repositório)!
160 304
161 EZ_I_SKIP_ON_V=$SIMPLE_INST 305 EZ_I_SKIP_ON_V=$SIMPLE_INST
162 -f_open_section  
163 -read -d '' TITLE_F <<"EOF"  
164 -Install base components?  
165 -EOF  
166 -  
167 -f_yes_no "$TITLE_F"  
168 -TITLE_F=""  
169 -if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then  
170 - f_pack_is_inst "gcc-c++" "yum" "\"gcc-c++\" already installed!"  
171 - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then  
172 - yum -y install gcc-c++ 306 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  307 + if [[ "$DISTRO_NAME" == "RedHat" ]] ; then
  308 + RESOURCES_ARR_P=("Red Hat Enterprise Linux Server")
  309 + f_chk_distro_status "$DISTRO_NAME" RESOURCES_ARR_P[@]
173 fi 310 fi
174 - f_pack_is_inst "postgresql-devel" "yum" "\"postgresql-devel\" already installed!"  
175 - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then  
176 - yum -y install postgresql-devel 311 + f_div_section
  312 + f_yes_no "Update your distro? (\"y\" highly recommended)"
  313 + f_div_section
  314 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  315 + yum -y update
177 fi 316 fi
178 f_pack_is_inst "git" "yum" "\"git\" already installed!" 317 f_pack_is_inst "git" "yum" "\"git\" already installed!"
179 if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then 318 if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
180 yum -y install git 319 yum -y install git
181 fi 320 fi
  321 +elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  322 + f_div_section
  323 + f_yes_no "Update your distro? (\"y\" highly recommended)"
  324 + f_div_section
  325 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  326 + apt-get -y update
  327 + fi
  328 + f_pack_is_inst "git" "apt-get" "\"git\" already installed!"
  329 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  330 + apt-get -y install git
  331 + fi
  332 +elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  333 + if [[ "$DISTRO_NAME" == "SLES" ]] ; then
  334 + RESOURCES_ARR_P=("SUSE_Linux_Enterprise_Server_12_SP1_x86_64"
  335 +"SUSE_Linux_Enterprise_Software_Development_Kit_12_SP1_x86_64"
  336 +"Web_and_Scripting_Module_12_x86_64")
  337 + f_chk_distro_status "SLES" RESOURCES_ARR_P[@]
  338 + fi
  339 + f_div_section
  340 + f_yes_no "Update your distro? (\"y\" highly recommended)"
  341 + f_div_section
  342 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  343 + zypper --non-interactive update
  344 + fi
  345 + f_pack_is_inst "git-core" "zypper" "\"git-core\" already installed!"
  346 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  347 + zypper --non-interactive install git-core
  348 + fi
182 fi 349 fi
183 -f_close_section  
184 350
185 # < ----------------------------------------- 351 # < -----------------------------------------
186 352
@@ -212,24 +378,143 @@ f_close_section @@ -212,24 +378,143 @@ f_close_section
212 # < ----------------------------------------- 378 # < -----------------------------------------
213 379
214 # > ----------------------------------------- 380 # > -----------------------------------------
215 -# Instalar o virtualenv-1.11.6 no python2.6! 381 +# Instalar pacotes que são comuns a determinados componentes!
  382 +
  383 +F_COM_PKS_INSTALLED=0
  384 +f_common_packs() {
  385 + : 'Instalar pacotes que são comuns a determinados componentes.'
  386 +
  387 + if [ ${F_COM_PKS_INSTALLED} -eq 0 ] ; then
  388 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  389 + f_pack_is_inst "gcc-c++" "yum" "\"gcc-c++\" already installed!"
  390 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  391 + yum -y install gcc-c++
  392 + fi
  393 + f_pack_is_inst "autoconf" "yum" "\"autoconf\" already installed!"
  394 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  395 + yum -y install autoconf
  396 + fi
  397 + f_pack_is_inst "automake" "yum" "\"automake\" already installed!"
  398 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  399 + yum -y install automake
  400 + fi
  401 + f_pack_is_inst "libtool" "yum" "\"libtool\" already installed!"
  402 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  403 + yum -y install libtool
  404 + fi
  405 + f_pack_is_inst "zlib-devel" "yum" "\"zlib-devel\" already installed!"
  406 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  407 + yum -y install zlib-devel
  408 + fi
  409 + f_pack_is_inst "postgresql-devel" "yum" "\"postgresql-devel\" already installed!"
  410 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  411 + yum -y install postgresql-devel
  412 + fi
  413 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  414 + f_pack_is_inst "g++" "apt-get" "\"g++\" already installed!"
  415 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  416 + apt-get -y install g++
  417 + fi
  418 + f_pack_is_inst "autoconf" "apt-get" "\"autoconf\" already installed!"
  419 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  420 + apt-get -y install autoconf
  421 + fi
  422 + f_pack_is_inst "make" "apt-get" "\"make\" already installed!"
  423 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  424 + apt-get -y install make
  425 + fi
  426 + f_pack_is_inst "libtool" "apt-get" "\"libtool\" already installed!"
  427 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  428 + apt-get -y install libtool
  429 + fi
  430 + f_pack_is_inst "zlib1g-dev" "apt-get" "\"zlib1g-dev\" already installed!"
  431 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  432 + apt-get -y install zlib1g-dev
  433 + fi
  434 + f_pack_is_inst "libpq-dev" "apt-get" "\"libpq-dev\" already installed!"
  435 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  436 + apt-get -y install libpq-dev
  437 + fi
  438 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  439 + f_pack_is_inst "gcc-c++" "zypper" "\"gcc-c++\" already installed!"
  440 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  441 + zypper --non-interactive install gcc-c++
  442 + fi
  443 + if [[ "$DISTRO_NAME" != "SLES" ]] ; then
  444 + f_pack_is_inst "autoconf" "zypper" "\"autoconf\" already installed!"
  445 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  446 + zypper --non-interactive install autoconf
  447 + fi
  448 + f_pack_is_inst "automake" "zypper" "\"automake\" already installed!"
  449 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  450 + zypper --non-interactive install automake
  451 + fi
  452 + f_pack_is_inst "make" "zypper" "\"make\" already installed!"
  453 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  454 + zypper --non-interactive install make
  455 + fi
  456 + f_pack_is_inst "libtool" "zypper" "\"libtool\" already installed!"
  457 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  458 + zypper --non-interactive install libtool
  459 + fi
  460 + fi
  461 + f_pack_is_inst "zlib-devel" "zypper" "\"zlib-devel\" already installed!"
  462 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  463 + zypper --non-interactive install zlib-devel
  464 + fi
  465 + f_pack_is_inst "postgresql-devel" "zypper" "\"postgresql-devel\" already installed!"
  466 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  467 + zypper --non-interactive install postgresql-devel
  468 + fi
  469 + fi
  470 + F_COM_PKS_INSTALLED=1
  471 + fi
  472 +}
216 473
  474 +# > -----------------------------------------
  475 +# Instalar o virtualenv-1.11.6 no python2.X!
  476 +
  477 +PYTHON_2_X=""
  478 +VE_2_X=""
  479 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  480 + PYTHON_2_X="2.6"
  481 + VE_2_X="ve26"
  482 +elif [[ "$DISTRO_TYPE" == "DEB" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  483 + PYTHON_2_X="2.7"
  484 + VE_2_X="ve27"
  485 +fi
217 EZ_I_SKIP_ON_V=$SIMPLE_INST 486 EZ_I_SKIP_ON_V=$SIMPLE_INST
218 f_open_section 487 f_open_section
219 -read -d '' TITLE_F <<"EOF"  
220 -Install virtualenv-1.11.6 on python2.6?  
221 -EOF  
222 -  
223 -f_yes_no "$TITLE_F"  
224 -TITLE_F="" 488 +f_yes_no "Install virtualenv-1.11.6 on python$PYTHON_2_X?"
225 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then 489 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
226 - f_chk_by_path_hlp "/usr/bin/virtualenv-2.6" "f" "virtualenv-1.11.6 already installed!" 490 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  491 + f_chk_by_path_hlp "/usr/bin/virtualenv-$PYTHON_2_X" "f" "virtualenv-1.11.6 already installed!"
  492 + elif [[ "$DISTRO_TYPE" == "DEB" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  493 + f_chk_by_path_hlp "/usr/local/bin/virtualenv-$PYTHON_2_X" "f" "virtualenv-1.11.6 already installed!"
  494 + fi
  495 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  496 + f_pack_is_inst "python-setuptools" "yum" "\"python-setuptools\" already installed!"
  497 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  498 + yum -y install python-setuptools
  499 + fi
  500 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  501 + f_pack_is_inst "python-setuptools" "apt-get" "\"python-setuptools\" already installed!"
  502 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  503 + apt-get -y install python-setuptools
  504 + fi
  505 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  506 + f_pack_is_inst "python-setuptools" "zypper" "\"python-setuptools\" already installed!"
  507 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  508 + zypper --non-interactive install python-setuptools
  509 + fi
  510 + fi
227 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then 511 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then
  512 + f_common_packs
228 cd "$SCRIPTDIR_V" 513 cd "$SCRIPTDIR_V"
229 cd ./other-srcs-n-apps 514 cd ./other-srcs-n-apps
230 tar -zxvf virtualenv-1.11.6.tar.gz 515 tar -zxvf virtualenv-1.11.6.tar.gz
231 cd virtualenv-1.11.6 516 cd virtualenv-1.11.6
232 - python2.6 setup.py install 517 + python$PYTHON_2_X setup.py install
233 cd .. 518 cd ..
234 rm -rf virtualenv-1.11.6 519 rm -rf virtualenv-1.11.6
235 fi 520 fi
@@ -239,29 +524,29 @@ f_close_section @@ -239,29 +524,29 @@ f_close_section
239 # < ----------------------------------------- 524 # < -----------------------------------------
240 525
241 # > ----------------------------------------- 526 # > -----------------------------------------
242 -# Criar o ambiente virtual (python2.6)! 527 +# Criar o ambiente virtual (python2.X)!
243 528
244 EZ_I_SKIP_ON_V=$SIMPLE_INST 529 EZ_I_SKIP_ON_V=$SIMPLE_INST
245 f_open_section 530 f_open_section
246 -f_enter_to_cont "Create the virtual environment (python2.6)!"  
247 -  
248 -f_chk_by_path_hlp "$BASE_INST_DIR_V/ve26" "d" "Virtual environment (python2.6) already created in \"$BASE_INST_DIR_V/ve26\"!" 531 +f_enter_to_cont "Create the virtual environment (python$PYTHON_2_X)!"
  532 +f_chk_by_path_hlp "$BASE_INST_DIR_V/$VE_2_X" "d" "Virtual environment (python$PYTHON_2_X) already created in \"$BASE_INST_DIR_V/$VE_2_X\"!"
249 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then 533 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then
  534 + f_common_packs
250 cd "$BASE_INST_DIR_V" 535 cd "$BASE_INST_DIR_V"
251 - virtualenv-2.6 ve26  
252 - mkdir "$BASE_INST_DIR_V/ve26/src"  
253 - f_enter_to_cont "Virtual environment created in \"$BASE_INST_DIR_V/ve26\"!" 536 + virtualenv-$PYTHON_2_X $VE_2_X
  537 + mkdir "$BASE_INST_DIR_V/$VE_2_X/src"
  538 + f_enter_to_cont "Virtual environment created in \"$BASE_INST_DIR_V/$VE_2_X\"!"
254 fi 539 fi
255 f_close_section 540 f_close_section
256 541
257 # < ----------------------------------------- 542 # < -----------------------------------------
258 543
259 # > ----------------------------------------- 544 # > -----------------------------------------
260 -# Instalar as dependências python2.6 da LIB - liblightbase! 545 +# Instalar as dependências python2.X da LIB - liblightbase!
261 546
262 EZ_I_SKIP_ON_V=$SIMPLE_INST 547 EZ_I_SKIP_ON_V=$SIMPLE_INST
263 cd "$SCRIPTDIR_V" 548 cd "$SCRIPTDIR_V"
264 -sh py-packs-liblightbase.sh "$EZ_I_SKIP_ON_V" "$BASE_INST_DIR_V" 549 +bash py-packs-liblightbase.sh "$EZ_I_SKIP_ON_V" "$BASE_INST_DIR_V" "$PYTHON_2_X" "$VE_2_X"
265 550
266 # < ----------------------------------------- 551 # < -----------------------------------------
267 552
@@ -277,17 +562,17 @@ EOF @@ -277,17 +562,17 @@ EOF
277 f_yes_no "$TITLE_F" 562 f_yes_no "$TITLE_F"
278 TITLE_F="" 563 TITLE_F=""
279 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then 564 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
280 - f_chk_by_path_hlp "$BASE_INST_DIR_V/ve26/src/liblightbase" "d" "\"liblightbase\" already installed in \"$BASE_INST_DIR_V/ve26/src\"!" 565 + f_chk_by_path_hlp "$BASE_INST_DIR_V/$VE_2_X/src/liblightbase" "d" "\"liblightbase\" already installed in \"$BASE_INST_DIR_V/$VE_2_X/src\"!"
281 F_BAK_MD_R=1 566 F_BAK_MD_R=1
282 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then 567 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then
283 - f_ez_mv_bak "$BASE_INST_DIR_V/ve26/src/liblightbase" "Backup old version and update? (\"y\" recommended)" 568 + f_ez_mv_bak "$BASE_INST_DIR_V/$VE_2_X/src/liblightbase" "Backup old version and update? (\"y\" recommended)"
284 fi 569 fi
285 if [ ${F_BAK_MD_R} -eq 1 ] ; then 570 if [ ${F_BAK_MD_R} -eq 1 ] ; then
286 cd "$SCRIPTDIR_V" 571 cd "$SCRIPTDIR_V"
287 tar -zxvf liblightbase.tar.gz 572 tar -zxvf liblightbase.tar.gz
288 - mv "$SCRIPTDIR_V/liblightbase" "$BASE_INST_DIR_V/ve26/src/"  
289 - cd "$BASE_INST_DIR_V/ve26/src/liblightbase"  
290 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 573 + mv "$SCRIPTDIR_V/liblightbase" "$BASE_INST_DIR_V/$VE_2_X/src/"
  574 + cd "$BASE_INST_DIR_V/$VE_2_X/src/liblightbase"
  575 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
291 fi 576 fi
292 fi 577 fi
293 f_close_section 578 f_close_section
@@ -299,7 +584,7 @@ f_close_section @@ -299,7 +584,7 @@ f_close_section
299 584
300 EZ_I_SKIP_ON_V=$SIMPLE_INST 585 EZ_I_SKIP_ON_V=$SIMPLE_INST
301 cd "$SCRIPTDIR_V" 586 cd "$SCRIPTDIR_V"
302 -sh py-packs-LBIndex.sh "$EZ_I_SKIP_ON_V" "$BASE_INST_DIR_V" 587 +bash py-packs-LBIndex.sh "$EZ_I_SKIP_ON_V" "$BASE_INST_DIR_V" "$PYTHON_2_X" "$VE_2_X"
303 588
304 # < ----------------------------------------- 589 # < -----------------------------------------
305 590
@@ -309,38 +594,47 @@ HTTP_PORT_F=6543 @@ -309,38 +594,47 @@ HTTP_PORT_F=6543
309 594
310 EZ_I_SKIP_ON_V=$SIMPLE_INST 595 EZ_I_SKIP_ON_V=$SIMPLE_INST
311 f_open_section 596 f_open_section
312 -read -d '' TITLE_F <<"EOF"  
313 -Install the LBI - LBIndex?  
314 -EOF  
315 -  
316 -f_yes_no "$TITLE_F"  
317 -TITLE_F="" 597 +f_yes_no "Install the LBI - LBIndex?"
318 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then 598 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
319 599
320 - f_chk_by_path_hlp "$BASE_INST_DIR_V/ve26/src/LBIndex" "d" "\"LBIndex\" already installed in \"$BASE_INST_DIR_V/ve26/src\"!" 600 + f_chk_by_path_hlp "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex" "d" "\"LBIndex\" already installed in \"$BASE_INST_DIR_V/$VE_2_X/src\"!"
321 F_BAK_MD_R=1 601 F_BAK_MD_R=1
322 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then 602 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then
323 - f_ez_mv_bak "$BASE_INST_DIR_V/ve26/src/LBIndex" "Backup old version and update? (\"y\" recommended)" 603 + f_ez_mv_bak "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex" "Backup old version and update? (\"y\" recommended)"
324 fi 604 fi
325 if [ ${F_BAK_MD_R} -eq 1 ] ; then 605 if [ ${F_BAK_MD_R} -eq 1 ] ; then
326 cd "$SCRIPTDIR_V" 606 cd "$SCRIPTDIR_V"
327 tar -zxvf LBIndex.tar.gz 607 tar -zxvf LBIndex.tar.gz
328 - mv "$SCRIPTDIR_V/LBIndex" "$BASE_INST_DIR_V/ve26/src/"  
329 - cd "$BASE_INST_DIR_V/ve26/src/LBIndex"  
330 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 608 + mv "$SCRIPTDIR_V/LBIndex" "$BASE_INST_DIR_V/$VE_2_X/src/"
  609 + cd "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex"
  610 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
331 611
332 f_enter_to_cont "Configure LBI - LBIndex!" 612 f_enter_to_cont "Configure LBI - LBIndex!"
333 - \cp "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindex-dist" "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindex-prov"  
334 - f_ez_sed "<LBINDEXMG_PATH>" "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindexmg" "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindex-prov" 613 + \cp "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindex-dist" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindex-prov"
  614 +
  615 + if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  616 + f_ez_sed "<LBI_SCRIPT_HEAD>" "# chkconfig: 2345 99 01\n# description: Esquema de inicialização do LBIndex\n# processname: lbindex" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindex-prov"
  617 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  618 + f_ez_sed "<LBI_SCRIPT_HEAD>" "### BEGIN INIT INFO\n# Provides: lbindex\n# Required-Start: \$remote_fs \$syslog\n# Required-Stop: \$remote_fs \$syslog\n# Default-Start: 2 3 4 5\n# Default-Stop: 0 1 6\n# Short-Description: Start daemon at boot time\n# Description: Enable service provided by daemon.\n### END INIT INFO" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindex-prov"
  619 + fi
  620 +
  621 + f_ez_sed "<LBINDEXMG_PATH>" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindexmg" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindex-prov"
335 rm -rf "/etc/init.d/lbindex" 622 rm -rf "/etc/init.d/lbindex"
336 - mv "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindex-prov" "/etc/init.d/lbindex" 623 + mv "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindex-prov" "/etc/init.d/lbindex"
337 624
338 chmod 755 -R /etc/init.d/ 625 chmod 755 -R /etc/init.d/
339 cd /etc/init.d/ 626 cd /etc/init.d/
340 - chkconfig --level 2345 lbindex on  
341 627
342 - \cp "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindexmg-dist" "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindexmg"  
343 - f_ez_sed "<VIRTUALENV_PATH>" "$BASE_INST_DIR_V/ve26" "$BASE_INST_DIR_V/ve26/src/LBIndex/lbindexmg" 628 + if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  629 + chkconfig --level 2345 lbindex on
  630 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  631 + update-rc.d -f lbindex remove
  632 + update-rc.d lbindex defaults
  633 + chmod +x ./lbindex
  634 + fi
  635 +
  636 + \cp "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindexmg-dist" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindexmg"
  637 + f_ez_sed "<VIRTUALENV_PATH>" "$BASE_INST_DIR_V/$VE_2_X" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/lbindexmg"
344 638
345 LBG_URL_F="http://127.0.0.1/lbg" 639 LBG_URL_F="http://127.0.0.1/lbg"
346 QUESTION_F="Enter the LBG - LBGenerator URL. 640 QUESTION_F="Enter the LBG - LBGenerator URL.
@@ -353,7 +647,7 @@ Use empty for \&quot;$LBG_URL_F\&quot; (LOCALHOST)!&quot; @@ -353,7 +647,7 @@ Use empty for \&quot;$LBG_URL_F\&quot; (LOCALHOST)!&quot;
353 fi 647 fi
354 648
355 QUESTION_F="Enter the port number for http service. 649 QUESTION_F="Enter the port number for http service.
356 -Use empty for \"6543\" (recommended)!" 650 +Use empty for \"$HTTP_PORT_F\" (recommended)!"
357 651
358 f_get_usr_input "$QUESTION_F" 1 652 f_get_usr_input "$QUESTION_F" 1
359 QUESTION_F="" 653 QUESTION_F=""
@@ -361,9 +655,9 @@ Use empty for \&quot;6543\&quot; (recommended)!&quot; @@ -361,9 +655,9 @@ Use empty for \&quot;6543\&quot; (recommended)!&quot;
361 HTTP_PORT_F=$GET_USR_INPUT_R 655 HTTP_PORT_F=$GET_USR_INPUT_R
362 fi 656 fi
363 657
364 - \cp "$BASE_INST_DIR_V/ve26/src/LBIndex/production.ini-dist" "$BASE_INST_DIR_V/ve26/src/LBIndex/production.ini"  
365 - f_ez_sed "<HTTP_SERVICE_PORT_NUM>" "$HTTP_PORT_F" "$BASE_INST_DIR_V/ve26/src/LBIndex/production.ini"  
366 - f_ez_sed "<MACHINE_IP_OR_NAME>" "$LBG_URL_F" "$BASE_INST_DIR_V/ve26/src/LBIndex/production.ini" 658 + \cp "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/production.ini-dist" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/production.ini"
  659 + f_ez_sed "<HTTP_SERVICE_PORT_NUM>" "$HTTP_PORT_F" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/production.ini"
  660 + f_ez_sed "<MACHINE_IP_OR_NAME>" "$LBG_URL_F" "$BASE_INST_DIR_V/$VE_2_X/src/LBIndex/production.ini"
367 661
368 service lbindex restart 662 service lbindex restart
369 fi 663 fi
@@ -375,21 +669,33 @@ f_close_section @@ -375,21 +669,33 @@ f_close_section
375 # > ----------------------------------------- 669 # > -----------------------------------------
376 # Abrir o firewall para o http service! 670 # Abrir o firewall para o http service!
377 671
378 -EZ_I_SKIP_ON_V=0  
379 -f_open_section  
380 -TITLE_F="Open firewall for http service (TCP $HTTP_PORT_F)?"  
381 -  
382 -f_yes_no "$TITLE_F"  
383 -TITLE_F=""  
384 -if [ ${YES_NO_R} -eq 1 ]; then  
385 - f_chk_iptables ${HTTP_PORT_F} "Port $HTTP_PORT_F is already open!" 0 "ACCEPT" "tcp" "NEW"  
386 - if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then  
387 - iptables -I INPUT 6 -p tcp -m state --state NEW -m tcp --dport ${HTTP_PORT_F} -j ACCEPT  
388 - service iptables save  
389 - service iptables restart 672 +if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  673 + EZ_I_SKIP_ON_V=$SIMPLE_INST
  674 + f_open_section
  675 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  676 + f_yes_no "Open firewall for http service (TCP $HTTP_PORT_F)?"
  677 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  678 + f_chk_iptables ${HTTP_PORT_F} "Port $HTTP_PORT_F is already open!" 0 "ACCEPT" "tcp" "NEW"
  679 + if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then
  680 + iptables -I INPUT 6 -p tcp -m state --state NEW -m tcp --dport ${HTTP_PORT_F} -j ACCEPT
  681 + service iptables save
  682 + service iptables restart
  683 + fi
  684 + fi
  685 + f_close_section
  686 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  687 + f_yes_no "Open firewall for http service (TCP $HTTP_PORT_F)?"
  688 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  689 + f_chk_iptables ${HTTP_PORT_F} "Port $HTTP_PORT_F is already open!" 0 "ACCEPT" "tcp"
  690 + if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then
  691 + SuSEfirewall2 open EXT TCP ${HTTP_PORT_F}
  692 + SuSEfirewall2 stop
  693 + SuSEfirewall2 start
  694 + fi
  695 + fi
390 fi 696 fi
  697 + f_close_section
391 fi 698 fi
392 -f_close_section  
393 699
394 # < ----------------------------------------- 700 # < -----------------------------------------
395 701
@@ -403,7 +709,7 @@ Installer finished! Thanks! @@ -403,7 +709,7 @@ Installer finished! Thanks!
403 EOF 709 EOF
404 710
405 USEFUL_INFO_F="To configure... 711 USEFUL_INFO_F="To configure...
406 - vi $BASE_INST_DIR_V/ve26/src/LBIndex/production.ini 712 + vi $BASE_INST_DIR_V/$VE_2_X/src/LBIndex/production.ini
407 713
408 To start/stop... 714 To start/stop...
409 service lbindex start 715 service lbindex start
py-packs-LBIndex.sh
1 #!/bin/bash 1 #!/bin/bash
2 2
3 -# Instalação das dependências do LBI - LBIndex no python2.6! 3 +# Instalação das dependências do LBI - LBIndex no python2.X!
4 4
5 . ./ez_i.sh 5 . ./ez_i.sh
6 6
@@ -10,7 +10,6 @@ if [ -z &quot;$SKIP_ON_V&quot; ] ; then @@ -10,7 +10,6 @@ if [ -z &quot;$SKIP_ON_V&quot; ] ; then
10 fi 10 fi
11 11
12 BASE_INST_DIR_V=$2 12 BASE_INST_DIR_V=$2
13 -  
14 # > ----------------------------------------- 13 # > -----------------------------------------
15 # Informar o diretório base da instalação! 14 # Informar o diretório base da instalação!
16 15
@@ -31,165 +30,175 @@ fi @@ -31,165 +30,175 @@ fi
31 30
32 # < ----------------------------------------- 31 # < -----------------------------------------
33 32
  33 +PYTHON_2_X=$3
  34 +if [ -z "$PYTHON_2_X" ] ; then
  35 + PYTHON_2_X="2.6"
  36 +fi
  37 +
  38 +VE_2_X=$4
  39 +if [ -z "$VE_2_X" ] ; then
  40 + VE_2_X="ve26"
  41 +fi
  42 +
34 f_open_section 43 f_open_section
35 44
36 -TITLE_F="Install LBI - LBIndex dependencies for python2.6?" 45 +TITLE_F="Install LBI - LBIndex dependencies for python$PYTHON_2_X?"
37 46
38 f_yes_no "$TITLE_F" 47 f_yes_no "$TITLE_F"
39 TITLE_F="" 48 TITLE_F=""
40 49
41 -if [ ${YES_NO_R} -eq 1 ] || [ ${SKIP_ON_V} -eq 1 ] ; then 50 +if [ ${SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
42 51
43 cd "$SCRIPTDIR_V" 52 cd "$SCRIPTDIR_V"
44 cd ./py-packs-LBIndex 53 cd ./py-packs-LBIndex
45 54
46 tar -zxvf ./argparse-1.3.0.tar.gz 55 tar -zxvf ./argparse-1.3.0.tar.gz
47 cd ./argparse-1.3.0 56 cd ./argparse-1.3.0
48 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 57 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
49 cd .. 58 cd ..
50 rm -rf ./argparse-1.3.0 59 rm -rf ./argparse-1.3.0
51 60
52 tar -zxvf ./ordereddict-1.1.tar.gz 61 tar -zxvf ./ordereddict-1.1.tar.gz
53 cd ./ordereddict-1.1 62 cd ./ordereddict-1.1
54 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 63 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
55 cd .. 64 cd ..
56 rm -rf ./ordereddict-1.1 65 rm -rf ./ordereddict-1.1
57 66
58 tar -zxvf ./pbr-0.10.0.tar.gz 67 tar -zxvf ./pbr-0.10.0.tar.gz
59 cd ./pbr-0.10.0 68 cd ./pbr-0.10.0
60 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 69 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
61 cd .. 70 cd ..
62 rm -rf ./pbr-0.10.0 71 rm -rf ./pbr-0.10.0
63 72
64 tar -zxvf ./linecache2-1.0.0.tar.gz 73 tar -zxvf ./linecache2-1.0.0.tar.gz
65 cd ./linecache2-1.0.0 74 cd ./linecache2-1.0.0
66 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 75 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
67 cd .. 76 cd ..
68 rm -rf ./linecache2-1.0.0 77 rm -rf ./linecache2-1.0.0
69 78
70 tar -zxvf ./configparser-3.3.0r2.tar.gz 79 tar -zxvf ./configparser-3.3.0r2.tar.gz
71 cd ./configparser-3.3.0r2 80 cd ./configparser-3.3.0r2
72 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 81 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
73 cd .. 82 cd ..
74 rm -rf ./configparser-3.3.0r2 83 rm -rf ./configparser-3.3.0r2
75 84
76 tar -zxvf ./traceback2-1.4.0.tar.gz 85 tar -zxvf ./traceback2-1.4.0.tar.gz
77 cd ./traceback2-1.4.0 86 cd ./traceback2-1.4.0
78 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 87 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
79 cd .. 88 cd ..
80 rm -rf ./traceback2-1.4.0 89 rm -rf ./traceback2-1.4.0
81 90
82 tar -zxvf ./unittest2-1.0.1.tar.gz 91 tar -zxvf ./unittest2-1.0.1.tar.gz
83 cd ./unittest2-1.0.1 92 cd ./unittest2-1.0.1
84 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 93 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
85 cd .. 94 cd ..
86 rm -rf ./unittest2-1.0.1 95 rm -rf ./unittest2-1.0.1
87 96
88 tar -zxvf ./urllib3-1.10.4.tar.gz 97 tar -zxvf ./urllib3-1.10.4.tar.gz
89 cd ./urllib3-1.10.4 98 cd ./urllib3-1.10.4
90 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 99 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
91 cd .. 100 cd ..
92 rm -rf ./urllib3-1.10.4 101 rm -rf ./urllib3-1.10.4
93 102
94 tar -zxvf ./elasticsearch-1.4.0.tar.gz 103 tar -zxvf ./elasticsearch-1.4.0.tar.gz
95 cd ./elasticsearch-1.4.0 104 cd ./elasticsearch-1.4.0
96 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 105 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
97 cd .. 106 cd ..
98 rm -rf ./elasticsearch-1.4.0 107 rm -rf ./elasticsearch-1.4.0
99 108
100 tar -zxvf ./simplejson-3.5.3.tar.gz 109 tar -zxvf ./simplejson-3.5.3.tar.gz
101 cd ./simplejson-3.5.3 110 cd ./simplejson-3.5.3
102 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 111 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
103 cd .. 112 cd ..
104 rm -rf ./simplejson-3.5.3 113 rm -rf ./simplejson-3.5.3
105 114
106 tar -zxvf ./certifi-2015.11.20.1.tar.gz 115 tar -zxvf ./certifi-2015.11.20.1.tar.gz
107 cd ./certifi-2015.11.20.1 116 cd ./certifi-2015.11.20.1
108 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 117 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
109 cd .. 118 cd ..
110 rm -rf ./certifi-2015.11.20.1 119 rm -rf ./certifi-2015.11.20.1
111 120
112 tar -zxvf ./pyelasticsearch-1.4.tar.gz 121 tar -zxvf ./pyelasticsearch-1.4.tar.gz
113 cd ./pyelasticsearch-1.4 122 cd ./pyelasticsearch-1.4
114 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 123 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
115 cd .. 124 cd ..
116 rm -rf ./pyelasticsearch-1.4 125 rm -rf ./pyelasticsearch-1.4
117 126
118 tar -zxvf ./requests-2.3.0.tar.gz 127 tar -zxvf ./requests-2.3.0.tar.gz
119 cd ./requests-2.3.0 128 cd ./requests-2.3.0
120 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 129 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
121 cd .. 130 cd ..
122 rm -rf ./requests-2.3.0 131 rm -rf ./requests-2.3.0
123 132
124 tar -zxvf ./six-1.7.2.tar.gz 133 tar -zxvf ./six-1.7.2.tar.gz
125 cd ./six-1.7.2 134 cd ./six-1.7.2
126 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 135 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
127 cd .. 136 cd ..
128 rm -rf ./six-1.7.2 137 rm -rf ./six-1.7.2
129 138
130 tar -zxvf ./PasteDeploy-1.5.2.tar.gz 139 tar -zxvf ./PasteDeploy-1.5.2.tar.gz
131 cd ./PasteDeploy-1.5.2 140 cd ./PasteDeploy-1.5.2
132 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 141 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
133 cd .. 142 cd ..
134 rm -rf ./PasteDeploy-1.5.2 143 rm -rf ./PasteDeploy-1.5.2
135 144
136 tar -zxvf ./venusian-1.0.tar.gz 145 tar -zxvf ./venusian-1.0.tar.gz
137 cd ./venusian-1.0 146 cd ./venusian-1.0
138 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 147 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
139 cd .. 148 cd ..
140 rm -rf ./venusian-1.0 149 rm -rf ./venusian-1.0
141 150
142 tar -zxvf ./translationstring-1.3.tar.gz 151 tar -zxvf ./translationstring-1.3.tar.gz
143 cd ./translationstring-1.3 152 cd ./translationstring-1.3
144 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 153 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
145 cd .. 154 cd ..
146 rm -rf ./translationstring-1.3 155 rm -rf ./translationstring-1.3
147 156
148 tar -zxvf ./zope.deprecation-4.1.2.tar.gz 157 tar -zxvf ./zope.deprecation-4.1.2.tar.gz
149 cd ./zope.deprecation-4.1.2 158 cd ./zope.deprecation-4.1.2
150 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 159 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
151 cd .. 160 cd ..
152 rm -rf ./zope.deprecation-4.1.2 161 rm -rf ./zope.deprecation-4.1.2
153 162
154 tar -zxvf ./zope.interface-4.1.3.tar.gz 163 tar -zxvf ./zope.interface-4.1.3.tar.gz
155 cd ./zope.interface-4.1.3 164 cd ./zope.interface-4.1.3
156 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 165 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
157 cd .. 166 cd ..
158 rm -rf ./zope.interface-4.1.3 167 rm -rf ./zope.interface-4.1.3
159 168
160 tar -zxvf ./repoze.lru-0.6.tar.gz 169 tar -zxvf ./repoze.lru-0.6.tar.gz
161 cd ./repoze.lru-0.6 170 cd ./repoze.lru-0.6
162 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 171 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
163 cd .. 172 cd ..
164 rm -rf ./repoze.lru-0.6 173 rm -rf ./repoze.lru-0.6
165 174
166 tar -zxvf ./WebOb-1.5.1.tar.gz 175 tar -zxvf ./WebOb-1.5.1.tar.gz
167 cd ./WebOb-1.5.1 176 cd ./WebOb-1.5.1
168 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 177 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
169 cd .. 178 cd ..
170 rm -rf ./WebOb-1.5.1 179 rm -rf ./WebOb-1.5.1
171 180
172 tar -zxvf ./pyramid-1.6b2.tar.gz 181 tar -zxvf ./pyramid-1.6b2.tar.gz
173 cd ./pyramid-1.6b2 182 cd ./pyramid-1.6b2
174 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 183 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
175 cd .. 184 cd ..
176 rm -rf ./pyramid-1.6b2 185 rm -rf ./pyramid-1.6b2
177 186
178 tar -zxvf ./Chameleon-2.24.tar.gz 187 tar -zxvf ./Chameleon-2.24.tar.gz
179 cd ./Chameleon-2.24 188 cd ./Chameleon-2.24
180 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 189 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
181 cd .. 190 cd ..
182 rm -rf ./Chameleon-2.24 191 rm -rf ./Chameleon-2.24
183 192
184 tar -zxvf ./pyramid_chameleon-0.3.tar.gz 193 tar -zxvf ./pyramid_chameleon-0.3.tar.gz
185 cd ./pyramid_chameleon-0.3 194 cd ./pyramid_chameleon-0.3
186 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 195 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
187 cd .. 196 cd ..
188 rm -rf ./pyramid_chameleon-0.3 197 rm -rf ./pyramid_chameleon-0.3
189 198
190 tar -zxvf ./waitress-0.8.10.tar.gz 199 tar -zxvf ./waitress-0.8.10.tar.gz
191 cd ./waitress-0.8.10 200 cd ./waitress-0.8.10
192 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 201 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
193 cd .. 202 cd ..
194 rm -rf ./waitress-0.8.10 203 rm -rf ./waitress-0.8.10
195 204
py-packs-liblightbase.sh
1 #!/bin/bash 1 #!/bin/bash
2 2
3 -# Instalação das dependências da LIB - liblightbase no python2.6! 3 +# Instalação das dependências da LIB - liblightbase no python2.X!
4 4
5 . ./ez_i.sh 5 . ./ez_i.sh
6 6
@@ -10,7 +10,6 @@ if [ -z &quot;$SKIP_ON_V&quot; ] ; then @@ -10,7 +10,6 @@ if [ -z &quot;$SKIP_ON_V&quot; ] ; then
10 fi 10 fi
11 11
12 BASE_INST_DIR_V=$2 12 BASE_INST_DIR_V=$2
13 -  
14 # > ----------------------------------------- 13 # > -----------------------------------------
15 # Informar o diretório base da instalação! 14 # Informar o diretório base da instalação!
16 15
@@ -31,9 +30,19 @@ fi @@ -31,9 +30,19 @@ fi
31 30
32 # < ----------------------------------------- 31 # < -----------------------------------------
33 32
  33 +PYTHON_2_X=$3
  34 +if [ -z "$PYTHON_2_X" ] ; then
  35 + PYTHON_2_X="2.6"
  36 +fi
  37 +
  38 +VE_2_X=$4
  39 +if [ -z "$VE_2_X" ] ; then
  40 + VE_2_X="ve26"
  41 +fi
  42 +
34 f_open_section 43 f_open_section
35 44
36 -TITLE_F="Install liblightbase dependencies for python2.6?" 45 +TITLE_F="Install liblightbase dependencies for python$PYTHON_2_X?"
37 46
38 f_yes_no "$TITLE_F" 47 f_yes_no "$TITLE_F"
39 TITLE_F="" 48 TITLE_F=""
@@ -45,43 +54,43 @@ if [ ${YES_NO_R} -eq 1 ] || [ ${SKIP_ON_V} -eq 1 ] ; then @@ -45,43 +54,43 @@ if [ ${YES_NO_R} -eq 1 ] || [ ${SKIP_ON_V} -eq 1 ] ; then
45 54
46 tar -zxvf ./decorator-3.4.0.tar.gz 55 tar -zxvf ./decorator-3.4.0.tar.gz
47 cd ./decorator-3.4.0 56 cd ./decorator-3.4.0
48 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 57 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
49 cd .. 58 cd ..
50 rm -rf ./decorator-3.4.0 59 rm -rf ./decorator-3.4.0
51 60
52 tar -zxvf ./six-1.7.2.tar.gz 61 tar -zxvf ./six-1.7.2.tar.gz
53 cd ./six-1.7.2 62 cd ./six-1.7.2
54 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 63 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
55 cd .. 64 cd ..
56 rm -rf ./six-1.7.2 65 rm -rf ./six-1.7.2
57 66
58 tar -zxvf ./ply-3.4.tar.gz 67 tar -zxvf ./ply-3.4.tar.gz
59 cd ./ply-3.4 68 cd ./ply-3.4
60 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 69 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
61 cd .. 70 cd ..
62 rm -rf ./ply-3.4 71 rm -rf ./ply-3.4
63 72
64 tar -zxvf ./jsonpath-rw-1.3.0.tar.gz 73 tar -zxvf ./jsonpath-rw-1.3.0.tar.gz
65 cd ./jsonpath-rw-1.3.0 74 cd ./jsonpath-rw-1.3.0
66 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 75 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
67 cd .. 76 cd ..
68 rm -rf ./jsonpath-rw-1.3.0 77 rm -rf ./jsonpath-rw-1.3.0
69 78
70 tar -zxvf ./python-dateutil-2.2.tar.gz 79 tar -zxvf ./python-dateutil-2.2.tar.gz
71 cd ./python-dateutil-2.2 80 cd ./python-dateutil-2.2
72 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 81 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
73 cd .. 82 cd ..
74 rm -rf ./python-dateutil-2.2 83 rm -rf ./python-dateutil-2.2
75 84
76 tar -zxvf ./requests-2.3.0.tar.gz 85 tar -zxvf ./requests-2.3.0.tar.gz
77 cd ./requests-2.3.0 86 cd ./requests-2.3.0
78 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 87 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
79 cd .. 88 cd ..
80 rm -rf ./requests-2.3.0 89 rm -rf ./requests-2.3.0
81 90
82 tar -zxvf ./voluptuous-0.8.7.tar.gz 91 tar -zxvf ./voluptuous-0.8.7.tar.gz
83 cd ./voluptuous-0.8.7 92 cd ./voluptuous-0.8.7
84 - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install" 93 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
85 cd .. 94 cd ..
86 rm -rf ./voluptuous-0.8.7 95 rm -rf ./voluptuous-0.8.7
87 96