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!

comments powered by Disqus