CkDeps - Análise de Dependências e Busca por Pacotes Instalados
Publicado por Mauricio Ferrari (última atualização em 12/05/2020)
[ Hits: 1.556 ]
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
Shuffle - Simples shell script que embaralha um array
Cadastrar máquina Win2K ou XP no Linux para Domínio
Script para configuracao rapida da eth0
Arch Linux - remover dependências obsoletas
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (12)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









