CkDeps - Análise de Dependências e Busca por Pacotes Instalados
Publicado por Mauricio Ferrari (última atualização em 12/05/2020)
[ Hits: 1.348 ]
Homepage: https://www.youtube.com/@LinuxDicasPro
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.
#!/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
Shell Script para Linux HOWTOs
Padronização de usuários em vários micros
NÓtinha - Gerador de notas fiscais para empresas
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)