CkDeps - Análise de Dependências e Busca por Pacotes Instalados
Publicado por Mauricio Ferrari (última atualização em 12/05/2020)
[ Hits: 1.526 ]
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
Backup e restauração dos programas instalados em sistemas baseados em Debian
theme2background - Extrair arquivos themepack e mover para o diretório backgrounds
Monitoramento de Tráfego de rede
Fazendo Backup de arquivos de micros em redes.
Filtro para importação de extrato do Banco do Brasil para Kmymoney
Nenhum comentário foi encontrado.
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Novidades Linux: Kernel 6.17, distros em ebulição e segurança em foco
Kernel ganha novos linters Rust e distros avançam com recursos de IA
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Orientação para instalar o Warsaw - módulo de proteção do Banco do Bra... (8)
systemd-resol... precisa ser reiniciado periodicamente (5)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 [RESOLVIDO] (6)
Fedora não reconhece James Donkey 102 Wireless Gaming Mouse (2)