CkDeps - Análise de Dependências e Busca por Pacotes Instalados

Publicado por Mauricio Ferrari (última atualização em 12/05/2020)

[ Hits: 935 ]

Homepage: https://github.com/mxnt10

Download ckdeps




Esse é um script que analisa se todas as dependências de um aplicativo binário estão instalados no Slackware. E ainda, ele pode ser usado para pesquisar por pacotes instalados e mostrar o que está ou não instalado.

  



Esconder código-fonte

#!/bin/bash
#
# CkDeps - Versão 0.2
#
# Script que analiza se todas as dependências de um aplicativo binário estão instalados no slackware.
#
# Foi incrementado o parâmetro -s com base no script lspkg de Thiago Silvino de 17/05/2008. (29/09/2018).
#
# Início do Projeto:  20/09/2018
# Término do Projeto: 20/09/2018
# Ultima alteração:   11/10/2018
#
# Criado por Mauricio Ferrari. Nova Trento, Santa Catarina, Brasil.

#############################################################################################################################

 ### Checagem da integridade do local digitado.

integrity () {
find $bin >/dev/null 2>/tmp/ck ### Rechlhendo informações para comparação.
T1=$(cat /tmp/ck)
T2=$(echo)
if [ "$T1" != "$T2" ]; then
   echo -e "\033[1;31mNão foi possível localizar o programa !!!\033[0m"
   echo
   rm -rf /tmp/ck ### O arquivo temporário será excluído.
   exit 1;
fi
}

#############################################################################################################################

 ### Pesquisa dos pacotes instalados no sistema.

searchpackage () {
   echo -e "\033[1;33mPesquisando por pacotes instalados...\033[0m"
   touch /tmp/foundp /tmp/notf
      for npackag in $plist ; do
      ls /var/log/packages >/tmp/vrf            ### Recolhendo os nomes dos pacotes.
      grep -wi $npackag /tmp/vrf >>/tmp/foundp  ### Comando que faz a pesquisa dos pacotes.
      comp=$(grep -wi $npackag /tmp/vrf)
         if [ "$comp" = "" ]; then
            echo $npackag >>/tmp/notf ### Despejo dos pacotes não encontrados.
         fi
      done
   d=$(echo)
   e=$(cat /tmp/foundp)
   f=$(cat /tmp/notf)
   if [ "$e" = "$d" ]; then
      rpn=$(echo "Nenhum!!!") ### Exibido caso nenhum pacote for encontrado.
   else
      rp=$(cat /tmp/foundp)
   fi
   if [ "$f" = "$d" ]; then
      npn=$(echo "Nenhum!!!") ### Exibido caso todos os pacotes forem encontrados.
   else
      sed -i s/"*"/""/g /tmp/notf 
      np=$(cat /tmp/notf)
   fi

 ### Exibição do resultado final.

   echo
   echo -e "\033[1;44mPacotes encontrados:\033[0m"     ### Exibe os pacotes instalados.
   echo -n -e "\033[1;32m$rp\033[0m\033[1;01m$rpn\033[0m"
   echo
   echo
   echo -e "\033[1;44mPacotes não encontrados:\033[0m" ### Exibe o pacotes não instalados.
   echo -e "\033[1;31m$np\033[0m\033[1;01m$npn\033[0m"
   echo
   rm -rf /tmp/foundp /tmp/vrf /tmp/notf ### Os arquivos temporários serão excluídos.
}

#############################################################################################################################

 ### Parte do script que exibe as informações do comando.

if [ "$1" = "" ]; then
   echo
   echo -e "\033[1;34mCkDeps - Versão 0.2 \033[0m"
   echo
   echo -e "\033[1;33mScript que analiza se todas as dependências de um aplicativo binário \033[0m"
   echo -e "\033[1;33mestão instalados no slackware. \033[0m"
   echo 
   echo -e "\033[1;41mUso:\033[0m \033[1;32mcheckdep /usr/bin/clementine \033[0m"
   echo -e "\033[1;32m     checkdep /usr/bin/wine \033[0m"
   echo -e "\033[1;32m     checkdep -s cmake gcc yad \033[0m"
   echo
   exit 1;
fi

#############################################################################################################################

 ### Aqui é a parte onde é configurado os parâmetros do script.

ARGS=$(getopt "s" $* )
set -- ${ARGS}
for i; do
   case "$1" in
      -s)
      SEARCH_PKG="true" ### Parâmetro -s.
      shift
      ;;
      --)
      shift
      break
      ;;
   esac
done

#############################################################################################################################

 ### Parte do script que define o parâmetro $*, detecta e exporta as dependências do aplicativo ($*).
echo
echo -e "\033[1;34mIniciando o CkDeps - Versão 0.2...\033[0m"
for bin in $* ; do
   plist=$(echo $* | sed s/" "/"* "/g | sed s/$/$"*"/) ### Necessário para o parâmetro -s.
   if [ "$SEARCH_PKG" = "true" ]; then
      searchpackage
      exit 1;
   fi
   integrity
   echo -e "\033[1;33mProcurando por dependências...\033[0m"
   ldd $bin | grep '=> not found' >/tmp/sdep                  ### Detecta as dependências faltantes.
   sed -i 's|=> not found||g' /tmp/sdep                       ### Retira as partes desnecessárias.
   sed -i 's|   ||g' /tmp/sdep
   a=$(ldd $bin)
   b=$(echo "   not a dynamic executable")

 ### Caso a saída do comando em $a coincida com $b, essa mensagem será exibida.

   if [ "$a" = "$b" ]; then                               
      echo -e "\033[1;31mNão foi possível recolher as informações... (not a dynamic executable) !!!\033[0m"
      echo
      rm -rf /tmp/sdep ### O arquivo temporário será excluído.
      exit 1;
   fi
   c=$(cat /tmp/sdep)   ### Leitura do conteúdo de sdep. 

 ### Se o novo arquivo exportado for nulo, essa mensagem será exibida.

   if [ "$c" = "" ]; then
      echo -e "\033[1;32mO Programa não possui nenhuma dependência faltante !!!\033[0m"
      echo
      rm -rf /tmp/sdep /tmp/ck ### Os arquivos temporários serão excluídos.
      exit 1;
   fi
   echo
   echo -e "\033[1;32mDependencias faltantes:\033[0m" ### Mensagem exibida em caso de dependências faltantes.
   echo -e "\033[1;31m$c\033[0m"
   echo 
   rm -rf /tmp/sdep /tmp/ck ### O arquivos temporários serão excluídos.
   exit 1;
done

Scripts recomendados

backupsl.sh

Shell Script para criar chave ssh e logar no servidor sem digitar senha

Ver consumo mensal Speedy

Backup das Bases de dados do [Mantis, MySQL, Phpmyadmin, Testlink] e dos Projetos do SVN

Mostra cores


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts