Commit e7abd33dd54c65d36711f281d5ebcdbc3b9fe1a4

Authored by Eduardo Lúcio Amorim Costa
1 parent dc6ca0f3
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,18,0,28
  4 +Version=3
  5 +ViewMode=1
  6 +
  7 +[Settings]
  8 +HiddenFilesShown=true
... ...
LBConverter.tar.gz 100755 → 100644
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
... ... @@ -24,17 +36,27 @@ Have fun! =D
24 36 EOF
25 37  
26 38 read -d '' WARNINGS_F <<"EOF"
27   -- Installer designed for CentOS 6 AMD64/RHEL 6 AMD64!
  39 +- This installer is compatible with RHEL, SUSE, Debian or distributions
  40 +based on these.
28 41  
29 42 - We RECOMMEND you...
30 43 Install all the components (answer yes to everything). Except
31 44 contrary guidance!
32 45 Check for previous installations! If there is previous
33 46 installations consider this variant in the process!
  47 + Although this is not mandatory, do the installation process in an
  48 + exclusive machine for this.
  49 +
  50 +- We NOTICE you...
  51 + This installer assumes that the target distribution has a "standard
  52 + setup". This may include components such as firewall, SELinux
  53 + and others.
  54 +
34 55 - We WARNING you...
35   - USE AT YOUR OWN RISK: WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO
36   -YOURSELF, HARDWARE, OR CO-WORKERS. EXCEPT IN CASES WHERE THERE ARE
37   -SIGNED CONTRACT THAT REGULATES THIS!
  56 + THIS INSTALLER AND RESULTING PRODUCTS COMES WITH ABSOLUTELY NO WARRANTY!
  57 + USE AT YOUR OWN RISK! WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO YOURSELF,
  58 + HARDWARE, OR CO-WORKERS. EXCEPT IN CASES WHERE THERE ARE SIGNED CONTRACT
  59 + THAT REGULATES THIS!
38 60 EOF
39 61  
40 62 read -d '' COMPANY_F <<"EOF"
... ... @@ -54,7 +76,8 @@ WARNINGS_F=&quot;&quot;
54 76 # --------------------------------------
55 77  
56 78 read -d '' TERMS_LICEN_F <<"EOF"
57   -BY USING THIS INSTALLER YOU ARE AGREEING TO THE TERMS OF USE OF ALL INVOLVED SOFTWARE!
  79 +BY USING THIS INSTALLER YOU ARE AGREEING TO THE TERMS OF USE OF ALL
  80 +INVOLVED SOFTWARE!
58 81 EOF
59 82  
60 83 f_terms_licen "$TERMS_LICEN_F"
... ... @@ -62,13 +85,18 @@ TERMS_LICEN_F=&quot;&quot;
62 85  
63 86 # < --------------------------------------------------------------------------
64 87  
  88 +# > -----------------------------------------
  89 +# Checar se o usuário é root!
  90 +
  91 +f_is_root
  92 +
  93 +# < -----------------------------------------
  94 +
65 95 # > --------------------------------------------------------------------------
66 96 # INTRUÇÕES!
67 97 # --------------------------------------
68 98  
69 99 read -d '' INSTRUCT_F <<"EOF"
70   -- To run this script YOU NEED to be root!
71   -
72 100 - TO CANCEL installation at any time use Ctrl+c!
73 101 EOF
74 102  
... ... @@ -77,6 +105,128 @@ INSTRUCT_F=&quot;&quot;
77 105  
78 106 # < --------------------------------------------------------------------------
79 107  
  108 +DISTRO_TYPE=""
  109 +DISTRO_NAME=""
  110 +# > -----------------------------------------
  111 +# Checar se a distro é compatível!
  112 +
  113 +f_open_section
  114 +f_about_distro
  115 +f_div_section
  116 +echo "DISTRO INFORMATION:"
  117 +f_div_section
  118 +echo "NAME: .... ${F_ABOUT_DISTRO_R[0]}"
  119 +echo "VERSION: . ${F_ABOUT_DISTRO_R[1]}"
  120 +echo "BASED: ... ${F_ABOUT_DISTRO_R[2]}"
  121 +echo "ARCH: .... ${F_ABOUT_DISTRO_R[3]}"
  122 +f_div_section
  123 +
  124 +if [[ "${F_ABOUT_DISTRO_R[2]}" == "Debian" ]] || [[ "${F_ABOUT_DISTRO_R[2]}" == "RedHat" ]] ||
  125 + [[ "${F_ABOUT_DISTRO_R[2]}" == "Suse" ]] ; then
  126 + if [[ "${F_ABOUT_DISTRO_R[2]}" == "Debian" ]] ; then
  127 + DISTRO_TYPE="DEB"
  128 + if [[ "${F_ABOUT_DISTRO_R[0]}" == "Ubuntu" ]] ; then
  129 + DISTRO_NAME="Ubuntu"
  130 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "14.04" ]] ; then
  131 + f_div_section
  132 + f_yes_no "Linux version may be incompatible with this installer (expected: 14.04/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  133 + f_div_section
  134 + if [ ${YES_NO_R} -eq 0 ] ; then
  135 + exit 0
  136 + fi
  137 + fi
  138 + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "Debian GNU/Linux" ]] ; then
  139 + DISTRO_NAME="Debian"
  140 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "8" ]] ; then
  141 + f_div_section
  142 + f_yes_no "Linux version may be incompatible with this installer (expected: 8/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  143 + f_div_section
  144 + if [ ${YES_NO_R} -eq 0 ] ; then
  145 + exit 0
  146 + fi
  147 + fi
  148 + else
  149 + f_div_section
  150 + f_yes_no "Linux distro may be incompatible with this installer (expected: Ubuntu or Debian/obtained: ${F_ABOUT_DISTRO_R[0]})! Continue?"
  151 + f_div_section
  152 + if [ ${YES_NO_R} -eq 0 ] ; then
  153 + exit 0
  154 + fi
  155 + fi
  156 + elif [[ "${F_ABOUT_DISTRO_R[2]}" == "RedHat" ]] ; then
  157 + DISTRO_TYPE="RH"
  158 + if [[ "${F_ABOUT_DISTRO_R[0]}" == "Red Hat Enterprise Linux Server" ]] ; then
  159 + DISTRO_NAME="RedHat"
  160 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "6."* ]] ; then
  161 + f_div_section
  162 + f_yes_no "Linux version may be incompatible with this installer (expected: 6.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  163 + f_div_section
  164 + if [ ${YES_NO_R} -eq 0 ] ; then
  165 + exit 0
  166 + fi
  167 + fi
  168 + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "CentOS" ]] ; then
  169 + DISTRO_NAME="CentOS"
  170 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "6."* ]] ; then
  171 + f_div_section
  172 + f_yes_no "Linux version may be incompatible with this installer (expected: 6.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  173 + f_div_section
  174 + if [ ${YES_NO_R} -eq 0 ] ; then
  175 + exit 0
  176 + fi
  177 + fi
  178 + else
  179 + f_div_section
  180 + 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?"
  181 + f_div_section
  182 + if [ ${YES_NO_R} -eq 0 ] ; then
  183 + exit 0
  184 + fi
  185 + fi
  186 + elif [[ "${F_ABOUT_DISTRO_R[2]}" == "Suse" ]] ; then
  187 + DISTRO_TYPE="SUSE"
  188 + if [[ "${F_ABOUT_DISTRO_R[0]}" == "openSUSE" ]] ; then
  189 + DISTRO_NAME="openSUSE"
  190 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "13."* ]] ; then
  191 + f_div_section
  192 + f_yes_no "Linux version may be incompatible with this installer (expected: 13.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  193 + f_div_section
  194 + if [ ${YES_NO_R} -eq 0 ] ; then
  195 + exit 0
  196 + fi
  197 + fi
  198 + elif [[ "${F_ABOUT_DISTRO_R[0]}" == "SLES" ]] ; then
  199 + DISTRO_NAME="SLES"
  200 + if [[ "${F_ABOUT_DISTRO_R[1]}" != "12."* ]] ; then
  201 + f_div_section
  202 + f_yes_no "Linux version may be incompatible with this installer (expected: 12.X/obtained: ${F_ABOUT_DISTRO_R[1]})! Continue?"
  203 + f_div_section
  204 + if [ ${YES_NO_R} -eq 0 ] ; then
  205 + exit 0
  206 + fi
  207 + fi
  208 + else
  209 + f_div_section
  210 + 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?"
  211 + f_div_section
  212 + if [ ${YES_NO_R} -eq 0 ] ; then
  213 + exit 0
  214 + fi
  215 + fi
  216 + fi
  217 +
  218 + if [[ "${F_ABOUT_DISTRO_R[3]}" != "x86_64" ]] ; then
  219 + f_enter_to_cont "Linux architecture completely incompatible with this installer (expected: x86_64/obtained: ${F_ABOUT_DISTRO_R[3]})!"
  220 + exit 0
  221 + fi
  222 +else
  223 + 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]})!"
  224 + exit 0
  225 +fi
  226 +f_close_section
  227 +
  228 +# < -----------------------------------------
  229 +
80 230 # > -----------------------------------------
81 231 # Dá ao usuário mais avançado a possibilideade de usar o instalador
82 232 # simplificado!
... ... @@ -86,7 +236,7 @@ INSTRUCT_F=&quot;&quot;
86 236 SIMPLE_INST=0
87 237 if [ ${SIMPLE_INST} -eq 0 ] ; then
88 238 f_open_section
89   - f_yes_no "Use simple install (using a default value for most of the options)?"
  239 + f_yes_no "Use simple install (use default values for most of the options)?"
90 240 if [ ${YES_NO_R} -eq 1 ] ; then
91 241  
92 242 # NOTE: Essa variável serve apenas para "preservar" o valor
... ... @@ -111,48 +261,93 @@ fi
111 261 # Garantir o encodamento correto para evitar problemas de
112 262 # compatibilidade!
113 263  
114   -EZ_I_SKIP_ON_V=$SIMPLE_INST
115   -f_open_section
116   -read -d '' TITLE_F <<"EOF"
117   -Set terminal encode? (recommended for Windows terminal clients)
118   -EOF
119   -
120   -f_yes_no "$TITLE_F"
121   -TITLE_F=""
122   -if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
123   - export LANG=pt_BR.utf8
  264 +if [ ${SIMPLE_INST} -eq 0 ] ; then
  265 + EZ_I_SKIP_ON_V=$SIMPLE_INST
  266 + f_open_section
  267 + f_yes_no "Set terminal encode? (in some cases recommended for Windows ssh clients)"
  268 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  269 + export LANG=pt_BR.utf8
  270 + fi
  271 + f_close_section
124 272 fi
125   -f_close_section
126 273  
127 274 # < -----------------------------------------
128 275  
129 276 # > -----------------------------------------
130 277 # Desabilita o SElinux!
131 278  
132   -EZ_I_SKIP_ON_V=0
133   -f_open_section
134   -read -d '' TITLE_F <<"EOF"
135   -Disable SElinux (use "y" if you never did it)?
136   -EOF
137   -
138   -f_yes_no "$TITLE_F"
139   -TITLE_F=""
140   -if [ ${YES_NO_R} -eq 1 ] ; then
141   - setenforce 0
142   -
143   - # NOTE: As condições abaixo visam evitar que o arquivo seja
144   - # desnecessariamente e erroneamente modificado! By Questor
145   - EZ_I_SKIP_ON_V=$SIMPLE_INST
146   - f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!"
  279 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
147 280 EZ_I_SKIP_ON_V=0
148   - if [ ${FL_CONT_STR_R} -eq 0 ] ; then
149   - f_fl_cont_str "SELINUX=disabled" "/etc/sysconfig/selinux"
  281 + f_open_section
  282 + f_yes_no "Disable SElinux (use "y" if you never did it)?"
  283 + if [ ${YES_NO_R} -eq 1 ] ; then
  284 + setenforce 0
  285 +
  286 + # NOTE: As condições abaixo visam evitar que o arquivo seja
  287 + # desnecessariamente e erroneamente modificado! By Questor
  288 + EZ_I_SKIP_ON_V=$SIMPLE_INST
  289 + f_fl_cont_str "# SELINUX=enforcing" "/etc/sysconfig/selinux" "The file \"/etc/sysconfig/selinux\" probably has already been changed! Check it!"
  290 + EZ_I_SKIP_ON_V=0
150 291 if [ ${FL_CONT_STR_R} -eq 0 ] ; then
151   - f_ez_sed "SELINUX=enforcing" "# SELINUX=enforcing\nSELINUX=disabled" "/etc/sysconfig/selinux"
  292 + f_fl_cont_str "SELINUX=disabled" "/etc/sysconfig/selinux"
  293 + if [ ${FL_CONT_STR_R} -eq 0 ] ; then
  294 + f_ez_sed "SELINUX=enforcing" "# SELINUX=enforcing\nSELINUX=disabled" "/etc/sysconfig/selinux"
  295 + fi
152 296 fi
153 297 fi
  298 + f_close_section
  299 +fi
  300 +
  301 +# < -----------------------------------------
  302 +
  303 +# > -----------------------------------------
  304 +# Atualizar a distro (repositório)!
  305 +
  306 +EZ_I_SKIP_ON_V=$SIMPLE_INST
  307 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  308 + if [[ "$DISTRO_NAME" == "RedHat" ]] ; then
  309 + RESOURCES_ARR_P=("Red Hat Enterprise Linux Server")
  310 + f_chk_distro_status "$DISTRO_NAME" RESOURCES_ARR_P[@]
  311 + fi
  312 + f_div_section
  313 + f_yes_no "Update your distro? (\"y\" highly recommended)"
  314 + f_div_section
  315 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  316 + yum -y update
  317 + fi
  318 + f_pack_is_inst "git" "yum" "\"git\" already installed!"
  319 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  320 + yum -y install git
  321 + fi
  322 +elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  323 + f_div_section
  324 + f_yes_no "Update your distro? (\"y\" highly recommended)"
  325 + f_div_section
  326 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  327 + apt-get -y update
  328 + fi
  329 + f_pack_is_inst "git" "apt-get" "\"git\" already installed!"
  330 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  331 + apt-get -y install git
  332 + fi
  333 +elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  334 + if [[ "$DISTRO_NAME" == "SLES" ]] ; then
  335 + RESOURCES_ARR_P=("SUSE_Linux_Enterprise_Server_12_SP1_x86_64"
  336 +"SUSE_Linux_Enterprise_Software_Development_Kit_12_SP1_x86_64"
  337 +"Web_and_Scripting_Module_12_x86_64")
  338 + f_chk_distro_status "SLES" RESOURCES_ARR_P[@]
  339 + fi
  340 + f_div_section
  341 + f_yes_no "Update your distro? (\"y\" highly recommended)"
  342 + f_div_section
  343 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  344 + zypper --non-interactive update
  345 + fi
  346 + f_pack_is_inst "git-core" "zypper" "\"git-core\" already installed!"
  347 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  348 + zypper --non-interactive install git-core
  349 + fi
154 350 fi
155   -f_close_section
156 351  
157 352 # < -----------------------------------------
158 353  
... ... @@ -184,24 +379,133 @@ f_close_section
184 379 # < -----------------------------------------
185 380  
186 381 # > -----------------------------------------
187   -# Instalar o virtualenv-1.11.6 no python2.6!
  382 +# Instalar pacotes que são comuns a determinados componentes!
  383 +
  384 +F_COM_PKS_INSTALLED=0
  385 +f_common_packs() {
  386 + : 'Instalar pacotes que são comuns a determinados componentes.'
  387 +
  388 + if [ ${F_COM_PKS_INSTALLED} -eq 0 ] ; then
  389 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  390 + f_pack_is_inst "gcc-c++" "yum" "\"gcc-c++\" already installed!"
  391 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  392 + yum -y install gcc-c++
  393 + fi
  394 + f_pack_is_inst "autoconf" "yum" "\"autoconf\" already installed!"
  395 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  396 + yum -y install autoconf
  397 + fi
  398 + f_pack_is_inst "automake" "yum" "\"automake\" already installed!"
  399 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  400 + yum -y install automake
  401 + fi
  402 + f_pack_is_inst "libtool" "yum" "\"libtool\" already installed!"
  403 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  404 + yum -y install libtool
  405 + fi
  406 + f_pack_is_inst "zlib-devel" "yum" "\"zlib-devel\" already installed!"
  407 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  408 + yum -y install zlib-devel
  409 + fi
  410 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  411 + f_pack_is_inst "g++" "apt-get" "\"g++\" already installed!"
  412 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  413 + apt-get -y install g++
  414 + fi
  415 + f_pack_is_inst "autoconf" "apt-get" "\"autoconf\" already installed!"
  416 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  417 + apt-get -y install autoconf
  418 + fi
  419 + f_pack_is_inst "make" "apt-get" "\"make\" already installed!"
  420 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  421 + apt-get -y install make
  422 + fi
  423 + f_pack_is_inst "libtool" "apt-get" "\"libtool\" already installed!"
  424 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  425 + apt-get -y install libtool
  426 + fi
  427 + f_pack_is_inst "zlib1g-dev" "apt-get" "\"zlib1g-dev\" already installed!"
  428 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  429 + apt-get -y install zlib1g-dev
  430 + fi
  431 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  432 + f_pack_is_inst "gcc-c++" "zypper" "\"gcc-c++\" already installed!"
  433 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  434 + zypper --non-interactive install gcc-c++
  435 + fi
  436 + if [[ "$DISTRO_NAME" != "SLES" ]] ; then
  437 + f_pack_is_inst "autoconf" "zypper" "\"autoconf\" already installed!"
  438 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  439 + zypper --non-interactive install autoconf
  440 + fi
  441 + f_pack_is_inst "automake" "zypper" "\"automake\" already installed!"
  442 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  443 + zypper --non-interactive install automake
  444 + fi
  445 + f_pack_is_inst "make" "zypper" "\"make\" already installed!"
  446 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  447 + zypper --non-interactive install make
  448 + fi
  449 + f_pack_is_inst "libtool" "zypper" "\"libtool\" already installed!"
  450 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  451 + zypper --non-interactive install libtool
  452 + fi
  453 + fi
  454 + f_pack_is_inst "zlib-devel" "zypper" "\"zlib-devel\" already installed!"
  455 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  456 + zypper --non-interactive install zlib-devel
  457 + fi
  458 + fi
  459 + F_COM_PKS_INSTALLED=1
  460 + fi
  461 +}
188 462  
  463 +# < -----------------------------------------
  464 +
  465 +# > -----------------------------------------
  466 +# Instalar o virtualenv-1.11.6 no python2.X!
  467 +
  468 +PYTHON_2_X=""
  469 +VE_2_X=""
  470 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  471 + PYTHON_2_X="2.6"
  472 + VE_2_X="ve26"
  473 +elif [[ "$DISTRO_TYPE" == "DEB" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  474 + PYTHON_2_X="2.7"
  475 + VE_2_X="ve27"
  476 +fi
189 477 EZ_I_SKIP_ON_V=$SIMPLE_INST
190 478 f_open_section
191   -read -d '' TITLE_F <<"EOF"
192   -Install virtualenv-1.11.6 on python2.6?
193   -EOF
194   -
195   -f_yes_no "$TITLE_F"
196   -TITLE_F=""
  479 +f_yes_no "Install virtualenv-1.11.6 on python$PYTHON_2_X?"
197 480 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
198   - f_chk_by_path_hlp "/usr/bin/virtualenv-2.6" "f" "virtualenv-1.11.6 already installed!"
  481 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  482 + f_chk_by_path_hlp "/usr/bin/virtualenv-$PYTHON_2_X" "f" "virtualenv-1.11.6 already installed!"
  483 + elif [[ "$DISTRO_TYPE" == "DEB" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  484 + f_chk_by_path_hlp "/usr/local/bin/virtualenv-$PYTHON_2_X" "f" "virtualenv-1.11.6 already installed!"
  485 + fi
  486 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  487 + f_pack_is_inst "python-setuptools" "yum" "\"python-setuptools\" already installed!"
  488 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  489 + yum -y install python-setuptools
  490 + fi
  491 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  492 + f_pack_is_inst "python-setuptools" "apt-get" "\"python-setuptools\" already installed!"
  493 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  494 + apt-get -y install python-setuptools
  495 + fi
  496 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  497 + f_pack_is_inst "python-setuptools" "zypper" "\"python-setuptools\" already installed!"
  498 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  499 + zypper --non-interactive install python-setuptools
  500 + fi
  501 + fi
199 502 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then
  503 + f_common_packs
200 504 cd "$SCRIPTDIR_V"
201 505 cd ./other-srcs-n-apps
202 506 tar -zxvf virtualenv-1.11.6.tar.gz
203 507 cd virtualenv-1.11.6
204   - python2.6 setup.py install
  508 + python$PYTHON_2_X setup.py install
205 509 cd ..
206 510 rm -rf virtualenv-1.11.6
207 511 fi
... ... @@ -211,18 +515,18 @@ f_close_section
211 515 # < -----------------------------------------
212 516  
213 517 # > -----------------------------------------
214   -# Criar o ambiente virtual (python2.6)!
  518 +# Criar o ambiente virtual (python2.X)!
215 519  
216 520 EZ_I_SKIP_ON_V=$SIMPLE_INST
217 521 f_open_section
218   -f_enter_to_cont "Create the virtual environment (python2.6)!"
219   -
220   -f_chk_by_path_hlp "$BASE_INST_DIR_V/ve26" "d" "Virtual environment (python2.6) already created in \"$BASE_INST_DIR_V/ve26\"!"
  522 +f_enter_to_cont "Create the virtual environment (python$PYTHON_2_X)!"
  523 +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\"!"
221 524 if [ ${F_CHK_BY_PATH_HLP_R} -eq 0 ] ; then
  525 + f_common_packs
222 526 cd "$BASE_INST_DIR_V"
223   - virtualenv-2.6 ve26
224   - mkdir "$BASE_INST_DIR_V/ve26/src"
225   - f_enter_to_cont "Virtual environment created in \"$BASE_INST_DIR_V/ve26\"!"
  527 + virtualenv-$PYTHON_2_X $VE_2_X
  528 + mkdir "$BASE_INST_DIR_V/$VE_2_X/src"
  529 + f_enter_to_cont "Virtual environment created in \"$BASE_INST_DIR_V/$VE_2_X\"!"
226 530 fi
227 531 f_close_section
228 532  
... ... @@ -233,12 +537,19 @@ f_close_section
233 537  
234 538 EZ_I_SKIP_ON_V=$SIMPLE_INST
235 539 f_open_section
236   -f_yes_no "Install catdoc, unzip and ImageMagick?"
237   -TITLE_F=""
  540 +INST_CATDOC_UNZIP_IMAGMAG=""
  541 +if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  542 + INST_CATDOC_UNZIP_IMAGMAG="Install catdoc, unzip and ImageMagick?"
  543 +elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  544 + INST_CATDOC_UNZIP_IMAGMAG="Install catdoc, unzip and ImageMagick?"
  545 +elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  546 + INST_CATDOC_UNZIP_IMAGMAG="Install catdoc and ImageMagick?"
  547 +fi
  548 +f_yes_no "$INST_CATDOC_UNZIP_IMAGMAG"
238 549 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
239 550  
240 551 UP_CATDOC=1
241   - f_chk_by_path_hlp "$BASE_INST_DIR_V/ve26/lib/catdoc-0.94.2" "d" "catdoc-0.94.2 already installed in \"$BASE_INST_DIR_V/ve26/lib/catdoc-0.94.2\"!"
  552 + f_chk_by_path_hlp "$BASE_INST_DIR_V/$VE_2_X/lib/catdoc-0.94.2" "d" "catdoc-0.94.2 already installed in \"$BASE_INST_DIR_V/$VE_2_X/lib/catdoc-0.94.2\"!"
242 553 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then
243 554 if [ ${EZ_I_SKIP_ON_V} -eq 0 ] ; then
244 555 f_div_section
... ... @@ -246,30 +557,43 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
246 557 f_div_section
247 558 UP_CATDOC=$YES_NO_R
248 559 if [ ${UP_CATDOC} -eq 1 ] ; then
249   - rm -rf "$BASE_INST_DIR_V/ve26/lib/catdoc-0.94.2"
  560 + rm -rf "$BASE_INST_DIR_V/$VE_2_X/lib/catdoc-0.94.2"
250 561 fi
251 562 fi
252 563 fi
253 564 if [ ${UP_CATDOC} -eq 1 ] ; then
254   -
255   - f_pack_is_inst "gcc-c++" "yum" "\"gcc-c++\" already installed!"
256   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
257   - yum -y install gcc-c++
258   - fi
259   - f_pack_is_inst "unzip" "yum" "\"unzip\" already installed!"
260   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
261   - yum -y install unzip
262   - fi
263   - f_pack_is_inst "ImageMagick" "yum" "\"ImageMagick\" already installed!"
264   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
265   - yum -y install ImageMagick
  565 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  566 + f_common_packs
  567 + f_pack_is_inst "unzip" "yum" "\"unzip\" already installed!"
  568 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  569 + yum -y install unzip
  570 + fi
  571 + f_pack_is_inst "ImageMagick" "yum" "\"ImageMagick\" already installed!"
  572 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  573 + yum -y install ImageMagick
  574 + fi
  575 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  576 + f_common_packs
  577 + f_pack_is_inst "unzip" "apt-get" "\"unzip\" already installed!"
  578 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  579 + apt-get -y install unzip
  580 + fi
  581 + f_pack_is_inst "imagemagick" "apt-get" "\"imagemagick\" already installed!"
  582 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  583 + apt-get -y install imagemagick
  584 + fi
  585 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  586 + f_common_packs
  587 + f_pack_is_inst "ImageMagick" "zypper" "\"ImageMagick\" already installed!"
  588 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  589 + zypper --non-interactive install ImageMagick
  590 + fi
266 591 fi
267   -
268 592 cd "$SCRIPTDIR_V"
269 593 cd ./other-srcs-n-apps
270 594 tar -zxvf catdoc-0.94.2.tar.gz
271   - mv ./catdoc-0.94.2 $BASE_INST_DIR_V/ve26/lib
272   - cd $BASE_INST_DIR_V/ve26/lib/catdoc-0.94.2
  595 + mv ./catdoc-0.94.2 $BASE_INST_DIR_V/$VE_2_X/lib
  596 + cd $BASE_INST_DIR_V/$VE_2_X/lib/catdoc-0.94.2
273 597 ./configure
274 598 make && make install
275 599 fi
... ... @@ -284,7 +608,6 @@ f_close_section
284 608 EZ_I_SKIP_ON_V=$SIMPLE_INST
285 609 f_open_section
286 610 f_yes_no "Install tesseract-ocr-3.02.02?"
287   -TITLE_F=""
288 611 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
289 612  
290 613 UP_TESSERACT_OCR=1
... ... @@ -298,29 +621,88 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
298 621 fi
299 622 fi
300 623 if [ ${UP_TESSERACT_OCR} -eq 1 ] ; then
301   - f_pack_is_inst "libpng-devel" "yum" "\"libpng-devel\" already installed!"
302   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
303   - yum -y install libpng-devel
304   - fi
305   - f_pack_is_inst "libjpeg-turbo-devel" "yum" "\"libjpeg-devel\" already installed!"
306   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
307   - yum -y install libjpeg-devel
308   - fi
309   - f_pack_is_inst "libtiff-devel" "yum" "\"libtiff-devel\" already installed!"
310   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
311   - yum -y install libtiff-devel
312   - fi
313   - f_pack_is_inst "libtool" "yum" "\"libtool\" already installed!"
314   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
315   - yum -y install libtool
316   - fi
317   - f_pack_is_inst "automake" "yum" "\"automake\" already installed!"
318   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
319   - yum -y install automake
320   - fi
321   - f_pack_is_inst "autoconf" "yum" "\"autoconf\" already installed!"
322   - if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
323   - yum -y install autoconf
  624 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  625 + f_common_packs
  626 + f_pack_is_inst "libpng12-devel" "yum" "\"libpng12-devel\" already installed!"
  627 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  628 + yum -y install libpng-devel
  629 + fi
  630 + f_pack_is_inst "libjpeg-turbo-devel" "yum" "\"libjpeg-turbo-devel\" already installed!"
  631 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  632 + yum -y install libjpeg-turbo-devel
  633 + fi
  634 + f_pack_is_inst "libtiff-devel" "yum" "\"libtiff-devel\" already installed!"
  635 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  636 + yum -y install libtiff-devel
  637 + fi
  638 + f_pack_is_inst "openjpeg-libs" "yum" "\"openjpeg-libs\" already installed!"
  639 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  640 + yum -y install openjpeg-libs
  641 + fi
  642 + f_pack_is_inst "giflib" "yum" "\"giflib\" already installed!"
  643 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  644 + yum -y install giflib
  645 + fi
  646 +
  647 + # NOTE: Esse pacote só existe no CentOS 7! By Questor
  648 + # f_pack_is_inst "libwebp-devel" "yum" "\"libwebp-devel\" already installed!"
  649 + # if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  650 + # yum -y install libwebp-devel
  651 + # fi
  652 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  653 + f_common_packs
  654 + f_pack_is_inst "libpng-dev" "apt-get" "\"libpng-dev\" already installed!"
  655 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  656 + apt-get -y install libpng-dev
  657 + fi
  658 + f_pack_is_inst "libjpeg-dev" "apt-get" "\"libjpeg-dev\" already installed!"
  659 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  660 + apt-get -y install libjpeg-dev
  661 + fi
  662 + f_pack_is_inst "libtiff-dev" "apt-get" "\"libtiff-dev\" already installed!"
  663 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  664 + apt-get -y install libtiff-dev
  665 + fi
  666 + f_pack_is_inst "libopenjpeg2" "apt-get" "\"libopenjpeg2\" already installed!"
  667 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  668 + apt-get -y install libopenjpeg2
  669 + fi
  670 + f_pack_is_inst "libgif-dev" "apt-get" "\"libgif-dev\" already installed!"
  671 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  672 + apt-get -y install libgif-dev
  673 + fi
  674 + f_pack_is_inst "libwebp-dev" "apt-get" "\"libwebp-dev\" already installed!"
  675 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  676 + apt-get -y install libwebp-dev
  677 + fi
  678 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  679 + f_common_packs
  680 + f_pack_is_inst "libpng-devel" "zypper" "\"libpng-devel\" already installed!"
  681 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  682 + zypper --non-interactive install libpng-devel
  683 + fi
  684 + f_pack_is_inst "libjpeg-devel" "zypper" "\"libjpeg-devel\" already installed!"
  685 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  686 + zypper --non-interactive install libjpeg-devel
  687 + fi
  688 + f_pack_is_inst "libtiff-devel" "zypper" "\"libtiff-devel\" already installed!"
  689 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  690 + zypper --non-interactive install libtiff-devel
  691 + fi
  692 + if [[ "$DISTRO_NAME" != "SLES" ]] ; then
  693 + f_pack_is_inst "libopenjp2-7" "zypper" "\"libopenjp2-7\" already installed!"
  694 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  695 + zypper --non-interactive install libopenjp2-7
  696 + fi
  697 + fi
  698 + f_pack_is_inst "libgif6" "zypper" "\"libgif6\" already installed!"
  699 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  700 + zypper --non-interactive install libgif6
  701 + fi
  702 + f_pack_is_inst "libwebp-devel" "zypper" "\"libwebp-devel\" already installed!"
  703 + if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then
  704 + zypper --non-interactive install libwebp-devel
  705 + fi
324 706 fi
325 707  
326 708 cd "$SCRIPTDIR_V"
... ... @@ -329,8 +711,9 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
329 711 tar -zxvf leptonica-1.71.tar.gz
330 712 mv ./leptonica-1.71 /usr/local/lib
331 713 cd /usr/local/lib/leptonica-1.71
  714 + ./autobuild
332 715 ./configure
333   - make && make install
  716 + make -j 4 && make install
334 717  
335 718 cd "$SCRIPTDIR_V"
336 719 cd ./other-srcs-n-apps
... ... @@ -340,7 +723,7 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
340 723 cd /usr/local/lib/tesseract-ocr
341 724 ./autogen.sh
342 725 ./configure
343   - make & make install
  726 + make -j 4 && make install
344 727 ldconfig
345 728  
346 729 cd "$SCRIPTDIR_V"
... ... @@ -359,11 +742,11 @@ f_close_section
359 742 # < -----------------------------------------
360 743  
361 744 # > -----------------------------------------
362   -# Instalar as dependências python2.6 da LBC - LBConverter!
  745 +# Instalar as dependências python2.X da LBC - LBConverter!
363 746  
364 747 EZ_I_SKIP_ON_V=$SIMPLE_INST
365 748 cd "$SCRIPTDIR_V"
366   -sh py-packs-LBConverter.sh "$EZ_I_SKIP_ON_V" "$BASE_INST_DIR_V"
  749 +bash py-packs-LBConverter.sh "$EZ_I_SKIP_ON_V" "$BASE_INST_DIR_V" "$PYTHON_2_X" "$VE_2_X"
367 750  
368 751 # < -----------------------------------------
369 752  
... ... @@ -374,34 +757,45 @@ HTTP_PORT_F=6544
374 757 EZ_I_SKIP_ON_V=$SIMPLE_INST
375 758 f_open_section
376 759 f_yes_no "Install the LBC - LBConverter?"
377   -TITLE_F=""
378 760 if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
379 761  
380   - f_chk_by_path_hlp "$BASE_INST_DIR_V/ve26/src/LBConverter" "d" "\"LBConverter\" already installed in \"$BASE_INST_DIR_V/ve26/src\"!"
  762 + f_chk_by_path_hlp "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter" "d" "\"LBConverter\" already installed in \"$BASE_INST_DIR_V/$VE_2_X/src\"!"
381 763 F_BAK_MD_R=1
382 764 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then
383   - f_ez_mv_bak "$BASE_INST_DIR_V/ve26/src/LBConverter" "Backup old version and update? (\"y\" recommended)"
  765 + f_ez_mv_bak "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter" "Backup old version and update? (\"y\" recommended)"
384 766 fi
385 767 if [ ${F_BAK_MD_R} -eq 1 ] ; then
386   -
387 768 cd "$SCRIPTDIR_V"
388 769 tar -zxvf LBConverter.tar.gz
389   - mv "$SCRIPTDIR_V/LBConverter" "$BASE_INST_DIR_V/ve26/src/"
390   - cd "$BASE_INST_DIR_V/ve26/src/LBConverter"
391   - eval "$BASE_INST_DIR_V/ve26/bin/python2.6 setup.py install"
  770 + mv "$SCRIPTDIR_V/LBConverter" "$BASE_INST_DIR_V/$VE_2_X/src/"
  771 + cd "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter"
  772 + eval "$BASE_INST_DIR_V/$VE_2_X/bin/python$PYTHON_2_X setup.py install"
392 773  
393 774 f_enter_to_cont "Configure LBC - LBConverter!"
394   - \cp "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconverter-dist" "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconverter-prov"
395   - f_ez_sed "<LBCONVERTERMG_PATH>" "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconvertermg" "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconverter-prov"
  775 + \cp "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconverter-dist" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconverter-prov"
  776 +
  777 + if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  778 + f_ez_sed "<LBI_SCRIPT_HEAD>" "# chkconfig: 2345 99 01\n# description: Esquema de inicialização do LBConverter\n# processname: lbconverter" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconverter-prov"
  779 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  780 + f_ez_sed "<LBI_SCRIPT_HEAD>" "### BEGIN INIT INFO\n# Provides: lbconverter\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/LBConverter/lbconverter-prov"
  781 + fi
  782 +
  783 + f_ez_sed "<LBCONVERTERMG_PATH>" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconvertermg" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconverter-prov"
396 784 rm -rf "/etc/init.d/lbconverter"
397   - mv "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconverter-prov" "/etc/init.d/lbconverter"
  785 + mv "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconverter-prov" "/etc/init.d/lbconverter"
398 786  
399 787 chmod 755 -R /etc/init.d/
400 788 cd /etc/init.d/
401   - chkconfig --level 2345 lbconverter on
402 789  
403   - \cp "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconvertermg-dist" "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconvertermg"
404   - f_ez_sed "<VIRTUALENV_PATH>" "$BASE_INST_DIR_V/ve26" "$BASE_INST_DIR_V/ve26/src/LBConverter/lbconvertermg"
  790 + if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  791 + chkconfig --level 2345 lbconverter on
  792 + elif [[ "$DISTRO_TYPE" == "DEB" ]] ; then
  793 + update-rc.d -f lbconverter remove
  794 + update-rc.d lbconverter defaults
  795 + fi
  796 +
  797 + \cp "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconvertermg-dist" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconvertermg"
  798 + f_ez_sed "<VIRTUALENV_PATH>" "$BASE_INST_DIR_V/$VE_2_X" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/lbconvertermg"
405 799  
406 800 LBG_URL_F="http://127.0.0.1/lbg"
407 801 QUESTION_F="Enter the LBG - LBGenerator URL.
... ... @@ -422,9 +816,9 @@ Use empty for \&quot;$HTTP_PORT_F\&quot; (recommended)!&quot;
422 816 HTTP_PORT_F=$GET_USR_INPUT_R
423 817 fi
424 818  
425   - \cp "$BASE_INST_DIR_V/ve26/src/LBConverter/production.ini-dist" "$BASE_INST_DIR_V/ve26/src/LBConverter/production.ini"
426   - f_ez_sed "<HTTP_SERVICE_PORT_NUM>" "$HTTP_PORT_F" "$BASE_INST_DIR_V/ve26/src/LBConverter/production.ini"
427   - f_ez_sed "<MACHINE_IP_OR_NAME>" "$LBG_URL_F" "$BASE_INST_DIR_V/ve26/src/LBConverter/production.ini"
  819 + \cp "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/production.ini-dist" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/production.ini"
  820 + f_ez_sed "<HTTP_SERVICE_PORT_NUM>" "$HTTP_PORT_F" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/production.ini"
  821 + f_ez_sed "<MACHINE_IP_OR_NAME>" "$LBG_URL_F" "$BASE_INST_DIR_V/$VE_2_X/src/LBConverter/production.ini"
428 822  
429 823 service lbconverter restart
430 824 fi
... ... @@ -436,21 +830,33 @@ f_close_section
436 830 # > -----------------------------------------
437 831 # Abrir o firewall para o http service!
438 832  
439   -EZ_I_SKIP_ON_V=0
440   -f_open_section
441   -TITLE_F="Open firewall for http service (TCP $HTTP_PORT_F)?"
442   -
443   -f_yes_no "$TITLE_F"
444   -TITLE_F=""
445   -if [ ${YES_NO_R} -eq 1 ]; then
446   - f_chk_iptables ${HTTP_PORT_F} "Port $HTTP_PORT_F is already open!" 0 "ACCEPT" "tcp" "NEW"
447   - if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then
448   - iptables -I INPUT 6 -p tcp -m state --state NEW -m tcp --dport ${HTTP_PORT_F} -j ACCEPT
449   - service iptables save
450   - service iptables restart
  833 +if [[ "$DISTRO_TYPE" == "RH" ]] || [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  834 + EZ_I_SKIP_ON_V=$SIMPLE_INST
  835 + f_open_section
  836 + if [[ "$DISTRO_TYPE" == "RH" ]] ; then
  837 + f_yes_no "Open firewall for http service (TCP $HTTP_PORT_F)?"
  838 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  839 + f_chk_iptables ${HTTP_PORT_F} "Port $HTTP_PORT_F is already open!" 0 "ACCEPT" "tcp" "NEW"
  840 + if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then
  841 + iptables -I INPUT 6 -p tcp -m state --state NEW -m tcp --dport ${HTTP_PORT_F} -j ACCEPT
  842 + service iptables save
  843 + service iptables restart
  844 + fi
  845 + fi
  846 + f_close_section
  847 + elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then
  848 + f_yes_no "Open firewall for http service (TCP $HTTP_PORT_F)?"
  849 + if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
  850 + f_chk_iptables ${HTTP_PORT_F} "Port $HTTP_PORT_F is already open!" 0 "ACCEPT" "tcp"
  851 + if [ ${F_CHK_IPTABLES_R} -eq 1 ] ; then
  852 + SuSEfirewall2 open EXT TCP ${HTTP_PORT_F}
  853 + SuSEfirewall2 stop
  854 + SuSEfirewall2 start
  855 + fi
  856 + fi
451 857 fi
  858 + f_close_section
452 859 fi
453   -f_close_section
454 860  
455 861 # < -----------------------------------------
456 862  
... ... @@ -464,7 +870,7 @@ Installer finished! Thanks!
464 870 EOF
465 871  
466 872 USEFUL_INFO_F="To configure...
467   - vi $BASE_INST_DIR_V/ve26/src/LBConverter/production.ini
  873 + vi $BASE_INST_DIR_V/$VE_2_X/src/LBConverter/production.ini
468 874  
469 875 To start/stop...
470 876 service lbconverter start
... ...
py-packs-LBConverter.sh
1 1 #!/bin/bash
2 2  
3   -# Instalação das dependências do LBC - LBConverter no python2.6!
  3 +# Instalação das dependências do LBC - LBConverter 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 LBC - LBConverter dependencies for python2.6?"
  45 +TITLE_F="Install LBC - LBConverter dependencies for python$PYTHON_2_X?"
37 46  
38 47 f_yes_no "$TITLE_F"
39 48 TITLE_F=""
... ... @@ -45,139 +54,139 @@ if [ ${SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then
45 54  
46 55 tar -zxvf ./ordereddict-1.1.tar.gz
47 56 cd ./ordereddict-1.1
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 ./ordereddict-1.1
51 60  
52 61 tar -zxvf ./configparser-3.3.0r2.tar.gz
53 62 cd ./configparser-3.3.0r2
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 ./configparser-3.3.0r2
57 66  
58 67 tar -zxvf ./pdfminer-20140328.tar.gz
59 68 cd ./pdfminer-20140328
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 ./pdfminer-20140328
63 72  
64 73 tar -zxvf ./requests-2.3.0.tar.gz
65 74 cd ./requests-2.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 ./requests-2.3.0
69 78  
70 79 tar -zxvf ./PasteDeploy-1.5.2.tar.gz
71 80 cd ./PasteDeploy-1.5.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 ./PasteDeploy-1.5.2
75 84  
76 85 tar -zxvf ./venusian-1.0.tar.gz
77 86 cd ./venusian-1.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 ./venusian-1.0
81 90  
82 91 tar -zxvf ./translationstring-1.3.tar.gz
83 92 cd ./translationstring-1.3
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 ./translationstring-1.3
87 96  
88 97 tar -zxvf ./zope.deprecation-4.1.2.tar.gz
89 98 cd ./zope.deprecation-4.1.2
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 ./zope.deprecation-4.1.2
93 102  
94 103 tar -zxvf ./zope.interface-4.1.3.tar.gz
95 104 cd ./zope.interface-4.1.3
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 ./zope.interface-4.1.3
99 108  
100 109 tar -zxvf ./repoze.lru-0.6.tar.gz
101 110 cd ./repoze.lru-0.6
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 ./repoze.lru-0.6
105 114  
106 115 tar -zxvf ./WebOb-1.5.1.tar.gz
107 116 cd ./WebOb-1.5.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 ./WebOb-1.5.1
111 120  
112 121 tar -zxvf ./pyramid-1.6b2.tar.gz
113 122 cd ./pyramid-1.6b2
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 ./pyramid-1.6b2
117 126  
118 127 tar -zxvf ./pbr-0.10.0.tar.gz
119 128 cd ./pbr-0.10.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 ./pbr-0.10.0
123 132  
124 133 tar -zxvf ./linecache2-1.0.0.tar.gz
125 134 cd ./linecache2-1.0.0
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 ./linecache2-1.0.0
129 138  
130 139 tar -zxvf ./traceback2-1.4.0.tar.gz
131 140 cd ./traceback2-1.4.0
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 ./traceback2-1.4.0
135 144  
136 145 tar -zxvf ./six-1.7.2.tar.gz
137 146 cd ./six-1.7.2
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 ./six-1.7.2
141 150  
142 151 tar -zxvf ./argparse-1.3.0.tar.gz
143 152 cd ./argparse-1.3.0
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 ./argparse-1.3.0
147 156  
148 157 tar -zxvf ./unittest2-1.0.1.tar.gz
149 158 cd ./unittest2-1.0.1
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 ./unittest2-1.0.1
153 162  
154 163 tar -zxvf ./Chameleon-2.24.tar.gz
155 164 cd ./Chameleon-2.24
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 ./Chameleon-2.24
159 168  
160 169 tar -zxvf ./pyramid_chameleon-0.3.tar.gz
161 170 cd ./pyramid_chameleon-0.3
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 ./pyramid_chameleon-0.3
165 174  
166 175 tar -zxvf ./waitress-0.8.10.tar.gz
167 176 cd ./waitress-0.8.10
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 ./waitress-0.8.10
171 180  
172 181 tar -zxvf ./xlrd-0.9.4.tar.gz
173 182 cd ./xlrd-0.9.4
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 ./xlrd-0.9.4
177 186  
178 187 tar -zxvf ./BeautifulSoup-3.2.1.tar.gz
179 188 cd ./BeautifulSoup-3.2.1
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 ./BeautifulSoup-3.2.1
183 192  
... ...