Instalação do Cisco Packettracer 7.2 no Debian 10

Publicado por bruno (última atualização em 24/01/2020)

[ Hits: 1.621 ]

Download ciscopt-buster.sh




Instalação do Cisco packettracer 7.2 no Debian 10.

  



Esconder código-fonte

#!/usr/bin/env bash
#
# AUTOR: Bruno Chaves
# Versão: 2.2
# Ultima modificação: 2019-09-17 
# 
# Repositório:
# https://github.com/Brunopvh/cisco-pt-buster
# https://github.com/Brunopvh/cisco-pt-buster.git
# 
# Execução:
#
# wget https://raw.githubusercontent.com/Brunopvh/cisco-pt-buster/master/ciscopt-buster.sh -O - ciscopt-buster.sh 
# 
# 
# 

clear


# Cores
amarelo="\e[1;33m"
Amarelo="\e[1;33;5m"
vermelho="\e[1;31m"
Vermelho="\e[1;31;5m"
verde="\e[1;32m"
Verde="\e[1;32;5m"
fecha="\e[m"

esp="------------------------------------------"

# Detectar sistema.
codinome_sistema=$(grep '^VERSION_CODENAME' /etc/os-release | sed 's|.*=||g')
nome_sistema=$(grep '^ID=' /etc/os-release | sed 's|.*=||g')

[[ $codinome_sistema == buster ]] || { echo -e "${vermelho}Seu sistema não e Debian buster $fecha"; exit 1; }

if [[ $USER == root ]] || [[ $UID == 0 ]]; then 
   echo -e "${vermelho}Usuário não pode ser o [root] $fecha"
   exit 1
fi


# Links
ftp_us="http://ftp.us.debian.org/debian/pool/main"
security="http://security.debian.org/debian-security"

link_libpng12_deb8_amd64="${ftp_us}/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb"
link_libpng12_deb8_i386="${ftp_us}/libp/libpng/libpng12-0_1.2.50-2+deb8u3_i386.deb"
link_libssl1_deb8_amd64="${security}/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u11_amd64.deb"
link_libssl1_deb8_i386="${security}/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u11_i386.deb"

# Diretórios
DIR_APPS_LINUX="${HOME}"/"${codinome_sistema}"
DIR_INTERNET="${DIR_APPS_LINUX}/Internet"
dir_tmp_pt="${DIR_INTERNET}/cisco-pt72-amd64"
dir_libs="${HOME}/.local/tmp/libs"

arq_libssl1_deb8_amd64="${DIR_INTERNET}"/libssl1.0_deb8_amd64.deb
arq_libssl1_deb8_i386="${DIR_INTERNET}"/libssl1.0_deb8_i386.deb
arq_libpng12_deb8_amd64="${DIR_INTERNET}"/libpng12-0_deb8_amd64.deb

mkdir -p "$DIR_APPS_LINUX" "$DIR_INTERNET" "$dir_tmp_pt" "$dir_libs"

# export local_trab=$(dirname $0) 
export readonly local_trab=$(dirname $(readlink -f "$0")) # Path do programa no sistema.

[[ ! -w "$local_trab" ]] && {
   echo -e "Você não tem permissão de escrita em: $local_trab"
   exit
}

# Função para verificar ou instalar os programas necessários.
function _apps_exist() 
{
   # $1 = programa a verificar ou instalar.
   local msg="Necessário instalar : "
   local msg_falha="Falha ao tentar instalar : "
   
   [[ -x $(which $1) ]] || { 
      echo -e "${amarelo}$msg $1 ${fecha}"
      sudo apt install -y $1
         [[ $? == 0 ]] || { echo -e "${vermelho}$msg_falha $1 ${fecha}"; exit 1; } 
   }
}

_apps_exist 'zenity' # Zenity

_apps_exist 'gdebi' # Gdebi

_apps_exist 'wget' # Wget

#-------------------------[ Função para exibir mensagens com zenity ]----------#
function msgs_zenity()
{

# (Sim Não) --question --title="Abrir" --text="Abrir ePSxe agora ?" 
#
# (Senha) --password --title="[sudo: $USER]"
#
# (Arquivo) --file-selection --title="Selecione o arquivo .bin" --file-filter="*.bin" 
#
#(Erro) --error --title="Falha na autênticação" --text="Senha incorrenta"
#
# (Lista) --list --text "Selecione uma configuração" --radiolist --column "Marcar" --column "Configurar" FALSE Bios TRUE Sair
#
# (Info) --info --title="Reiniciar" --text="Reinicie seu computador para aplicar alterações"
#
# Resolução [--width="550" height="200", --width="300" height="150" ]

case "$1" in
--question) zenity "$1" --title="$2" --text="$3" --width="$4" --height="$5";;
--info) zenity "$1" --title="$2" --text="$3" --width="$4" --height="$5";;
--error) zenity "$1" --title="$2" --text="$3" --width="$4" --height="$5";;
--file-selection) zenity "$1" --title="$2" --file-filter="$3" --file-filter="$4";;
--list) zenity "$1" --title="$2" --text="$3" --width="$4" --height="$5" --column "$6" $7;; 
esac

}

#---------------------------[ Instalar cisco pt ]-----------#
function _inst_ciscopkt() 
{

echo 'Iniciando instalação...'

while true; do

   arq_instalacao=$(msgs_zenity "--file-selection" "Selecionar arquivo" "*.tar.gz" "*.run")
   nome_arq=$(echo $arq_instalacao | sed 's|.*/||g')

   [[ -z "$arq_instalacao" ]] && exit 1

   prosseguir=$(msgs_zenity "--list" "Usar este arquivo ?" "Continuar" "650" "250" "$nome_arq" "Sim Não")
   
   # Descompactar e instalar packettracer.
   if [[ "$prosseguir" == "Sim" ]] && [[ $(echo "$nome_arq" | egrep ".tar.gz$" ) ]]; then
      echo 'Instalando .tar.gz'
   
      sudo rm -rf "${dir_tmp_pt}"/* 1> /dev/null 2>&1s
      tar xvzf "$arq_instalacao" -C "$dir_tmp_pt"
      chmod +x "$dir_tmp_pt/install"
      cd "$dir_tmp_pt/" && ./install
      (_corrigir_arquivos)
      break
   elif [[ "$prosseguir" == "Sim" ]] && [[ $(echo "$nome_arq" | egrep ".run$" ) ]]; then
      echo 'Instalando .run'
      chmod +x "$arq_instalacao"
      "$arq_instalacao"
      #(_corrigir_arquivos)
      break

   elif [[ "$prosseguir" == "Não" ]]; then
      echo 'Não...'
      exit 1
      break 
   else
      echo 'Repetindo...'
      continue
   fi
done
} # Fim _inst_ciscopkt

#---------------------[ Função para instalar libs debian buster ]----------#
function _inst_libs_buster() {
      
   # libssl1.0.0 deb8 amd64
   [[ $(aptitude show libssl1.0.0 | grep '^Estado' | cut -d ' ' -f 2) == 'instalado' ]] || {
      echo 'Instalando libssl1.0.0 amd64'
      wget "$link_libssl1_deb8_amd64" -O "$arq_libssl1_deb8_amd64"
      sudo gdebi-gtk "$arq_libssl1_deb8_amd64"
   }   
      
   # libpng12 deb8 amd64
   [[ -f '/opt/pt/bin/libpng12.so.0.50.0' ]] || {
      echo 'Configurando libpng12'
      wget "$link_libpng12_deb8_amd64" -O "$arq_libpng12_deb8_amd64"
      sudo rm -rf "$dir_libs"/* 1> /dev/null 2>&1
      sudo dpkg-deb -x "$arq_libpng12_deb8_amd64" "$dir_libs"
      sudo cp -vu "${dir_libs}"/lib/x86_64-linux-gnu/libpng12.so.0.50.0 /opt/pt/bin/libpng12.so.0.50.0
      sudo ln -sf /opt/pt/bin/libpng12.so.0.50.0 /opt/pt/bin/libpng12.so.0 
   }
      
}


#---------------------[ Função para instalar libs em ubuntu bionic ]----------#
function _inst_libs_bionic()
{

   wget "$link_libpng12_deb8_amd64" -O "$arq_libpng12_deb8_amd64"
   sudo apt install libssl1.0.0 -y
   
   sudo rm -rf "$dir_libs"/* 1> /dev/null 2>&1
   sudo dpkg-deb -x "$arq_libpng12_deb8_amd64" "$dir_libs"
   sudo cp -vu "${dir_libs}"/lib/x86_64-linux-gnu/libpng12.so.0.50.0 /opt/pt/bin/libpng12.so.0.50.0
   sudo ln -sf /opt/pt/bin/libpng12.so.0.50.0 /opt/pt/bin/libpng12.so.0  
}



#--------------------[ Função para corrigir arquivos ]----------------#
function _corrigir_arquivos()
{

 # /opt/pt/tpl.linguist
[[ -f '/opt/pt/tpl.linguist' ]] && { sudo sed -i "s|PTDIR=.*|PTDIR=/opt/pt|g" /opt/pt/tpl.linguist; }

# /opt/pt/tpl.packettracer
[[ -f '/opt/pt/tpl.packettracer' ]] && { sudo sed -i "s|PTDIR=.*|PTDIR=/opt/pt|g" /opt/pt/tpl.packettracer; }

# Arquivo pt7.desktop
[[ -f '/opt/pt/bin/Cisco-PacketTracer.desktop' ]] && {
   sudo cp -u '/opt/pt/bin/Cisco-PacketTracer.desktop' '/usr/share/applications/' 
   [[ -f '/usr/share/applications/pt7.desktop' ]] && sudo rm '/usr/share/applications/pt7.desktop'
} 
} # Fim de corrigir arquivos


#-----------------------------------[ Dependências ]----------------------#
function _inst_dependencias() 
{

echo 'Instalando: gdebi aptitude multiarch-support qtmultimedia5-dev libqt5script5 libqt5scripttools5'
echo ' '

# Suporte a 32 bits disponível ?.
[[ $(dpkg --print-foreign-architectures | grep i386) == "i386" ]] || { sudo dpkg --add-architecture i386; }
sudo apt update
sudo apt install --yes gdebi aptitude multiarch-support qtmultimedia5-dev libqt5script5 libqt5scripttools5

   [[ -d "$dir_tmp_pt" ]] && sudo rm -rf "$dir_tmp_pt"
} 

# Instalar dependências antes de instalar o programa.
(_inst_dependencias) 

# Executar a função de instalação se packettracer não estiver nas condições abaixo.
if [[ ! -x $(which packettracer) ]] || [[ ! -x /opt/pt/bin/PacketTracer7 ]]; then

instalar_agora=$(msgs_zenity "--list" "Instalar" "Selecione" "650" "250" "Instalação" "Instalar Sair")

   if [[ "$instalar_agora" == "Instalar" ]]; then
      (_inst_ciscopkt) # Debian/Ubuntu.
   else
      exit 0
   fi

fi

# Checar se local de instalação é '/opt/pt/bin'
[[ -x /opt/pt/bin/PacketTracer7 ]] || { echo 'Cisco-PacketTracer não instalado em: [/opt/pt] saindo...'; exit 1; }

(_corrigir_arquivos)

   case "$codinome_sistema" in
      buster) (_inst_libs_buster);; # Debian.
      bionic) (_inst_libs_bionic);; # Ubuntu.
   esac

msgs_zenity "--info" "Reiniciar" "Reinicie seu computador para aplicar alterações" "550" "150"

sudo -K

Scripts recomendados

Shell Script / Perl para sincronizar base de usuários do AD com o Zimbra

Pidshell - Alternativa ao pidof, escrito em shell

Implementando Statement e RecordSet em bash script

speedy.sh - Wget no popup do speedy home :-)

LINUX+SAMBA+QUOTAS


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts