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