CkDeps - Análise de Dependências e Busca por Pacotes Instalados
Publicado por Mauricio Ferrari (LinuxProativo) (última atualização em 12/05/2020)
[ Hits: 1.644 ]
Homepage: https://www.youtube.com/@LinuxProativo
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
Instalar Unreal Tourment no Linux
Getcursofe - Download do Curso Fé do Missionário R.R. Soares
Coleta de utilização de rede utilizando SAR (systat package)
Autenticação automática no Velox
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









