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 @@
  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
ez_i.sh
... ... @@ -273,8 +273,9 @@ f_pack_is_inst() {
273 273  
274 274 Args:
275 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 279 EXIST_MSG_P (Optional[str]): Mensagem a ser exibida se o
279 280 pacote já estiver instalado. Se vazio ou não informado não será
280 281 exibida mensagem.
... ... @@ -309,6 +310,30 @@ f_pack_is_inst() {
309 310 else
310 311 F_PACK_IS_INST_R=0
311 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 337 else
313 338 f_div_section
314 339 echo "ERROR! Not implemented for \"$PACK_MANAG\"!"
... ... @@ -462,6 +487,7 @@ f_is_not_running() {
462 487 CHK_INVERT=0
463 488 fi
464 489 F_IS_NOT_RUNNING_R=0
  490 +
465 491 # NOTE: A verificação "grep -v grep" é para que ele não dê positivo
466 492 # para o próprio comando grep! By Questor
467 493 F_IS_NOT_RUNNING_R=0
... ... @@ -484,6 +510,7 @@ f_is_not_running() {
484 510  
485 511 F_GET_STDERR_R=""
486 512 F_GET_STDOUT_R=""
  513 +F_GET_EXIT_CODE_R=0
487 514 f_get_stderr_stdout() {
488 515 : 'Executar um comando e colocar a saída de stderr e stdout nas
489 516 variáveis "F_GET_STDERR_R" e "F_GET_STDOUT_R"!.
... ... @@ -499,8 +526,9 @@ f_get_stderr_stdout() {
499 526 CMD_TO_EXEC=$1
500 527 F_GET_STDERR_R=""
501 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 532 F_GET_STDERR_R=$t_err
505 533 F_GET_STDOUT_R=$t_std
506 534 }
... ... @@ -536,7 +564,6 @@ f_ez_mv_bak() {
536 564 SKIP_MSG_P=1
537 565 fi
538 566  
539   -
540 567 MK_BAK=1
541 568 F_BAK_PATH_R=""
542 569 F_BAK_NAME_R=""
... ... @@ -565,6 +592,8 @@ f_error_exit() {
565 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 597 ERROR_CAUSE_P=$1
569 598 echo
570 599 f_open_section "E R R O R !"
... ... @@ -575,9 +604,40 @@ f_error_exit() {
575 604 echo "$ERROR_MSG_NOW_P"
576 605 echo
577 606 f_close_section
  607 + EZ_I_SKIP_ON_V=$EZ_I_S_ON_HOLDER
578 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 641 f_continue() {
582 642 : 'Questionar ao usuário se deseja continuar ou parar a instalação.
583 643  
... ... @@ -600,8 +660,343 @@ f_continue() {
600 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 1002 # GRAFICO!
... ...
install.sh
1 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 15 # NOTE: Evita problemas com caminhos relativos! By Questor
4 16 SCRIPTDIR_V="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 17 . $SCRIPTDIR_V/ez_i.sh
... ... @@ -23,17 +35,27 @@ Have fun! =D
23 35 EOF
24 36  
25 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 41 - We RECOMMEND you...
29 42 Install all the components (answer yes to everything). Except
30 43 contrary guidance!
31 44 Check for previous installations! If there is previous
32 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 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 59 EOF
38 60  
39 61 read -d '' COMPANY_F <<"EOF"
... ... @@ -53,7 +75,8 @@ WARNINGS_F=&quot;&quot;
53 75 # --------------------------------------
54 76  
55 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 80 EOF
58 81  
59 82 f_terms_licen "$TERMS_LICEN_F"
... ... @@ -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 95 # INTRUÇÕES!
66 96 # --------------------------------------
67 97  
68 98 read -d '' INSTRUCT_F <<"EOF"
69   -- To run this script YOU NEED to be root!
70   -
71 99 - TO CANCEL installation at any time use Ctrl+c!
72 100 EOF
73 101  
... ... @@ -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 230 # Dá ao usuário mais avançado a possibilideade de usar o instalador
81 231 # simplificado!
... ... @@ -85,7 +235,7 @@ INSTRUCT_F=&quot;&quot;
85 235 SIMPLE_INST=0
86 236 if [ ${SIMPLE_INST} -eq 0 ] ; then
87 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 239 if [ ${YES_NO_R} -eq 1 ] ; then
90 240  
91 241 # NOTE: Essa variável serve apenas para "preservar" o valor
... ... @@ -110,77 +260,93 @@ fi
110 260 # Garantir o encodamento correto para evitar problemas de
111 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 271 fi
124   -f_close_section
125 272  
126 273 # < -----------------------------------------
127 274  
128 275 # > -----------------------------------------
129 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 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 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 295 fi
152 296 fi
  297 + f_close_section
153 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 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 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 316 fi
178 317 f_pack_is_inst "git" "yum" "\"git\" already installed!"
179 318 if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
180 319 yum -y install git
181 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 349 fi
183   -f_close_section
184 350  
185 351 # < -----------------------------------------
186 352  
... ... @@ -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 486 EZ_I_SKIP_ON_V=$SIMPLE_INST
218 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 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 511 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then
  512 + f_common_packs
228 513 cd "$SCRIPTDIR_V"
229 514 cd ./other-srcs-n-apps
230 515 tar -zxvf virtualenv-1.11.6.tar.gz
231 516 cd virtualenv-1.11.6
232   - python2.6 setup.py install
  517 + python$PYTHON_2_X setup.py install
233 518 cd ..
234 519 rm -rf virtualenv-1.11.6
235 520 fi
... ... @@ -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 529 EZ_I_SKIP_ON_V=$SIMPLE_INST
245 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 533 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then
  534 + f_common_packs
250 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 539 fi
255 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 547 EZ_I_SKIP_ON_V=$SIMPLE_INST
263 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 562 f_yes_no "$TITLE_F"
278 563 TITLE_F=""
279 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 566 F_BAK_MD_R=1
282 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 569 fi
285 570 if [ ${F_BAK_MD_R} -eq 1 ] ; then
286 571 cd "$SCRIPTDIR_V"
287 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 576 fi
292 577 fi
293 578 f_close_section
... ... @@ -299,7 +584,7 @@ f_close_section
299 584  
300 585 EZ_I_SKIP_ON_V=$SIMPLE_INST
301 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 594  
310 595 EZ_I_SKIP_ON_V=$SIMPLE_INST
311 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 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 601 F_BAK_MD_R=1
322 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 604 fi
325 605 if [ ${F_BAK_MD_R} -eq 1 ] ; then
326 606 cd "$SCRIPTDIR_V"
327 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 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 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 625 chmod 755 -R /etc/init.d/
339 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 639 LBG_URL_F="http://127.0.0.1/lbg"
346 640 QUESTION_F="Enter the LBG - LBGenerator URL.
... ... @@ -353,7 +647,7 @@ Use empty for \&quot;$LBG_URL_F\&quot; (LOCALHOST)!&quot;
353 647 fi
354 648  
355 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 652 f_get_usr_input "$QUESTION_F" 1
359 653 QUESTION_F=""
... ... @@ -361,9 +655,9 @@ Use empty for \&quot;6543\&quot; (recommended)!&quot;
361 655 HTTP_PORT_F=$GET_USR_INPUT_R
362 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 662 service lbindex restart
369 663 fi
... ... @@ -375,21 +669,33 @@ f_close_section
375 669 # > -----------------------------------------
376 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 696 fi
  697 + f_close_section
391 698 fi
392   -f_close_section
393 699  
394 700 # < -----------------------------------------
395 701  
... ... @@ -403,7 +709,7 @@ Installer finished! Thanks!
403 709 EOF
404 710  
405 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 714 To start/stop...
409 715 service lbindex start
... ...
py-packs-LBIndex.sh
1 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 5 . ./ez_i.sh
6 6  
... ... @@ -10,7 +10,6 @@ if [ -z &quot;$SKIP_ON_V&quot; ] ; then
10 10 fi
11 11  
12 12 BASE_INST_DIR_V=$2
13   -
14 13 # > -----------------------------------------
15 14 # Informar o diretório base da instalação!
16 15  
... ... @@ -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 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 47 f_yes_no "$TITLE_F"
39 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 52 cd "$SCRIPTDIR_V"
44 53 cd ./py-packs-LBIndex
45 54  
46 55 tar -zxvf ./argparse-1.3.0.tar.gz
47 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 58 cd ..
50 59 rm -rf ./argparse-1.3.0
51 60  
52 61 tar -zxvf ./ordereddict-1.1.tar.gz
53 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 64 cd ..
56 65 rm -rf ./ordereddict-1.1
57 66  
58 67 tar -zxvf ./pbr-0.10.0.tar.gz
59 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 70 cd ..
62 71 rm -rf ./pbr-0.10.0
63 72  
64 73 tar -zxvf ./linecache2-1.0.0.tar.gz
65 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 76 cd ..
68 77 rm -rf ./linecache2-1.0.0
69 78  
70 79 tar -zxvf ./configparser-3.3.0r2.tar.gz
71 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 82 cd ..
74 83 rm -rf ./configparser-3.3.0r2
75 84  
76 85 tar -zxvf ./traceback2-1.4.0.tar.gz
77 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 88 cd ..
80 89 rm -rf ./traceback2-1.4.0
81 90  
82 91 tar -zxvf ./unittest2-1.0.1.tar.gz
83 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 94 cd ..
86 95 rm -rf ./unittest2-1.0.1
87 96  
88 97 tar -zxvf ./urllib3-1.10.4.tar.gz
89 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 100 cd ..
92 101 rm -rf ./urllib3-1.10.4
93 102  
94 103 tar -zxvf ./elasticsearch-1.4.0.tar.gz
95 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 106 cd ..
98 107 rm -rf ./elasticsearch-1.4.0
99 108  
100 109 tar -zxvf ./simplejson-3.5.3.tar.gz
101 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 112 cd ..
104 113 rm -rf ./simplejson-3.5.3
105 114  
106 115 tar -zxvf ./certifi-2015.11.20.1.tar.gz
107 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 118 cd ..
110 119 rm -rf ./certifi-2015.11.20.1
111 120  
112 121 tar -zxvf ./pyelasticsearch-1.4.tar.gz
113 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 124 cd ..
116 125 rm -rf ./pyelasticsearch-1.4
117 126  
118 127 tar -zxvf ./requests-2.3.0.tar.gz
119 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 130 cd ..
122 131 rm -rf ./requests-2.3.0
123 132  
124 133 tar -zxvf ./six-1.7.2.tar.gz
125 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 136 cd ..
128 137 rm -rf ./six-1.7.2
129 138  
130 139 tar -zxvf ./PasteDeploy-1.5.2.tar.gz
131 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 142 cd ..
134 143 rm -rf ./PasteDeploy-1.5.2
135 144  
136 145 tar -zxvf ./venusian-1.0.tar.gz
137 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 148 cd ..
140 149 rm -rf ./venusian-1.0
141 150  
142 151 tar -zxvf ./translationstring-1.3.tar.gz
143 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 154 cd ..
146 155 rm -rf ./translationstring-1.3
147 156  
148 157 tar -zxvf ./zope.deprecation-4.1.2.tar.gz
149 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 160 cd ..
152 161 rm -rf ./zope.deprecation-4.1.2
153 162  
154 163 tar -zxvf ./zope.interface-4.1.3.tar.gz
155 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 166 cd ..
158 167 rm -rf ./zope.interface-4.1.3
159 168  
160 169 tar -zxvf ./repoze.lru-0.6.tar.gz
161 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 172 cd ..
164 173 rm -rf ./repoze.lru-0.6
165 174  
166 175 tar -zxvf ./WebOb-1.5.1.tar.gz
167 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 178 cd ..
170 179 rm -rf ./WebOb-1.5.1
171 180  
172 181 tar -zxvf ./pyramid-1.6b2.tar.gz
173 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 184 cd ..
176 185 rm -rf ./pyramid-1.6b2
177 186  
178 187 tar -zxvf ./Chameleon-2.24.tar.gz
179 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 190 cd ..
182 191 rm -rf ./Chameleon-2.24
183 192  
184 193 tar -zxvf ./pyramid_chameleon-0.3.tar.gz
185 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 196 cd ..
188 197 rm -rf ./pyramid_chameleon-0.3
189 198  
190 199 tar -zxvf ./waitress-0.8.10.tar.gz
191 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 202 cd ..
194 203 rm -rf ./waitress-0.8.10
195 204  
... ...
py-packs-liblightbase.sh
1 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 5 . ./ez_i.sh
6 6  
... ... @@ -10,7 +10,6 @@ if [ -z &quot;$SKIP_ON_V&quot; ] ; then
10 10 fi
11 11  
12 12 BASE_INST_DIR_V=$2
13   -
14 13 # > -----------------------------------------
15 14 # Informar o diretório base da instalação!
16 15  
... ... @@ -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 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 47 f_yes_no "$TITLE_F"
39 48 TITLE_F=""
... ... @@ -45,43 +54,43 @@ if [ ${YES_NO_R} -eq 1 ] || [ ${SKIP_ON_V} -eq 1 ] ; then
45 54  
46 55 tar -zxvf ./decorator-3.4.0.tar.gz
47 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 58 cd ..
50 59 rm -rf ./decorator-3.4.0
51 60  
52 61 tar -zxvf ./six-1.7.2.tar.gz
53 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 64 cd ..
56 65 rm -rf ./six-1.7.2
57 66  
58 67 tar -zxvf ./ply-3.4.tar.gz
59 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 70 cd ..
62 71 rm -rf ./ply-3.4
63 72  
64 73 tar -zxvf ./jsonpath-rw-1.3.0.tar.gz
65 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 76 cd ..
68 77 rm -rf ./jsonpath-rw-1.3.0
69 78  
70 79 tar -zxvf ./python-dateutil-2.2.tar.gz
71 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 82 cd ..
74 83 rm -rf ./python-dateutil-2.2
75 84  
76 85 tar -zxvf ./requests-2.3.0.tar.gz
77 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 88 cd ..
80 89 rm -rf ./requests-2.3.0
81 90  
82 91 tar -zxvf ./voluptuous-0.8.7.tar.gz
83 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 94 cd ..
86 95 rm -rf ./voluptuous-0.8.7
87 96  
... ...