Listando pacotes no Slackware
Boa tarde.
Todos os pacotes que são instalados no Slackware ficam guardados em /var/log/packages. Isso significa que sempre que você quiser saber se tem um determinado pacote instalado você deve listar o conteúdo do diretório /var/log/packages e procurar pelo pacote desejado. Essa é a forma mais rápida, a outra forma de consultar os pacotes instalados é executar como root a ferramenta pkgtool e ir na opção view, então pkgtool listará todos os pacotes instalados.
Como eu já estava cansado de ficar executando o comando “ls /var/log/packages/pacotetal*” decidi criar um script que me ajudasse nessa tarefa. Eu queria algo bem simples, algo bem parecido com o comando ls. Então criei o script abaixo e o nomeei lspkg. Dá uma olhada no script:
#!/bin/bash
cd /var/log/packages/
package_list=`echo $* | sed s/" "/"* "/g | sed s/$/$"*"/ `
for package in $package_list ; do
if [ -e $package ] ;
then
number_of_fields=`echo $package | gawk -F "-" '{ split($0,fields); print length(fields) }'`
if [ $number_of_fields == 5 ] ;
then
name=`echo $package | cut -d - -f 1,2`
version=`echo $package | cut -d - -f 3`
arch=`echo $package | cut -d - -f 4`
build=`echo $package | cut -d - -f 5`
else
name=`echo $package | cut -d - -f 1`
version=`echo $package | cut -d - -f 2`
arch=`echo $package | cut -d - -f 3`
build=`echo $package | cut -d - -f 4`
fi
echo -e -n "Package: 33[1m$name33[0m - "
echo -n "version: $version - "
echo -n "arch: $arch - "
echo "build: $build"
else
package_not_found=`echo $package | tr -d "*"`
echo -e "The package 33[1m$package_not_found was not found33[0m in your system."
fi
done
Agora é só copiar esse código para um arquivo de texto e salvá-lo como lspkg, você também deve dar permissão de execução para esse arquivo e copiá-lo para /usr/bin.
Depois de fazer o procedimento acim, faça um teste. Veja o resultado quando executei na minha máquina:
bash-3.1$ lspkg ruby bash pkgtoo teste
Package: ruby – version: 1.8.6_p114 – arch: i486 – build: 1
Package: bash – version: 3.1.017 – arch: i486 – build: 2
Package: pkgtools – version: 12.1.0 – arch: noarch – build: 7
The package teste was not found in your system.
Caso você tenha alguma sugestão para melhorar esse script faça o seu comentário.
Até mais!
Não ha comentários
Leave a reply