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

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

[ Hits: 1.210 ]

Homepage: https://www.youtube.com/@LinuxDicasPro

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

Remoção de arquivos pela data

Gravar dvd no Linux

open_tcp

script limpeza de sistemas linux

Cálculo de área de cobertura de toner/tinta em uma impressão


  

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