pacotes no slackware, parte 1: pkgtools

o Slackware possui uma visao extremamente simplista de tudo, e como era de se esperar, nao seria diferente com seus pacotes…

irei explicar, atraves exemplos praticos, como funciona seu gerenciamento de pacotes…

vamos verificar a primeira das ferramentas, o pkgtool:
root@bodacious:/home/bode# pkgtool

as opcoes que ele nos oferece sao:

  • Current: se voce tem pacotes alojados no diretorio de onde chamou o pkgtool, ele os identifica e, pacote por pacote, vai perguntando se deve ou nao instalar no sistema
  • Other: busca os pacotes a serem instalados, mas que estejam localizados em outro diretorio, que no caso, voce deve informar… se comporta assim como Current, durante a identificacao e instalacao dos pacotes
  • Floppy: assim como em Current e Other, busca por pacotes a serem instalados, mas espera que estejam localizados dentro de um disquete…
  • Remove: exibe uma lista contendo todos seus pacotes instalados, onde voce pode marcar quais serao removidos (utilizando a barra de espacos) e com certeza os que estiverem marcados irao virar poeira cosmica, caso deseje…
  • View: exibe a lista com todos os pacotes que estao instalados no sistema, mas seu diferencial eh que permite visualizarmos tanto a descricao completa de um pacote quanto quais sao os arquivos contidos no mesmo (junto de sua localizacao no sistema)
  • Setup: opcao interessante… permite executar novamente os scripts de configuracao que sao rodados durante a instalacao do sistema… soh para exemplificar, temos scripts que configuram a rede, o mouse, quais serao os servicos ativados por padrao… etc…
  • Exit: adivinha? sim… ele sai do pkgtool =)

veremos destas opcoes, somente a que visualiza as coisas, por ser algo mais intuitivo de se fazer logo de cara, ao inves de remover ou instalar alguma coisa… para isso, selecione View e observe a tela contendo a listagem de pacotes:

malandramente, irei conduzir as coisas para nosso proximo passo, mostrando um pouco de como as coisas funcionam por dentro… para isso encontre na lista um pacote chamado pkgtools-12.1.0-noarch-7… sim, se voce apertar o “p”, ele jah posiciona a seleçao da lista para onde existem pacotes cujo nome começa com a letra “p”… =) assim que encontra-lo, de um OK e daremos uma passada rapida pelas informacoes que obtemos com isso:

como pudemos observar, existem algumas seçoes distintas, dentre as quais PACKAGE DESCRIPTION e FILE LIST sao, para nos, as mais importantes no momento…

logo de cara olhando na lista de arquivos, podemos identificar que o proprio pkgtool faz parte desse pacote, o pkgtools… hummm, interessante… vemos tambem que existem mais scripts alem do pkgtool, os quais possuem nomes muito sugestivos, tendo como principais figuras estes caras:

  • installpkg: instala novos pacotes
  • upgradepkg: faz o upgrade de um pacote instalado no sistema para um pacote mais novo, substituindo os arquivos contidos no antigo pacote pelos arquivos contidos no novo pacote
  • removepkg: serve para remover pacotes
  • explodepkg: nao, nao eh um comando explosivo, sua funçao eh simples e direta… descompacta o conteudo de todos os pacotes (compativeis com o padrao do Slackware, que eh .tgz == tar + gz) informados para o diretorio corrente… avisa se algum script de instalaçao foi encontrado nesse pacote apos descompacta-lo…
  • makepkg: muito bacana este utilitario… ajuda a montarmos nosso pacote, que ja deve estar com sua hierarquia montada corretamente dentro de um diretorio, apos sua compilaçao ter sido bem sucedida, obviamente… =)

a parte mais legal de tudo isso eh realmente utilizar esses utilitarios de linha de comando, afinal nos somos slackers ou sacos de batatas? …nao responda! hahahaha!

como nosso exemplo pratico de uso, vamos utilizar o htop de cobaia… trata-se de uma versao “mais completa”, “mais rock-n-roll”, e que na minha opiniao, eh mais legal que o top, que jah vem instalado no sistema…

baixaremos do Linux Packages, uma versao do htop que esta defasada, para primeiro treinarmos como funciona o processo de instalaçao, usando o installpkg… depois, iremos atualiza-lo para a versao corrente (pelo menos, ateh a data de publicaçao deste post, eh claro) disponivel no portal italiano Slacky, com o upgradepkg… no final das contas, acionaremos o removepkg que ira manda-lo diretamente para o Pelé… nao restando instalado em nosso sistema, apos este exercicio, um arquivo sequer, proveniente deste teste…

obs.: sim, eu sei que ele eh um pacote de Slackware 12.1 e estamos na versao 12.2, mas este eh apenas um exercicio onde jah averiguei a compatibilidade de versoes entre os pacotes… vai ser mais legal assim, acredite… qualquer coisa, voce vai sentir o removepkg necessario, alem de achar da hora a maneira que o upgradepkg atualiza os pacotes…

vamos lah, em seu diretorio de pacotes, ou em qualquer outro que queira, baixe o htop defasado e renomeie o bicho para que tenha o final .tgz, senao o installpkg nao vai rodar direito com ele, caso voce esteja com o Slackware 12.2 instalado, assim como eu:

bode@bodacious:~/pacotes$ wget http://mirror.slackwarebrasil.org/linuxpackages/Slackware/Slackware-12.1/Console/htop/htop-0.8-i486-1ant

bode@bodacious:~/pacotes$ mv htop-0.8-i486-1ant htop-0.8-i486-1ant.tgz

agora sim… vamos instalar essa bagaça velha?

root@bodacious:/home/bode/pacotes# installpkg htop-0.8-i486-1ant.tgz

beleza na represa… se tudo correu bem, sua saida foi bem parecida como esta:

Installing package htop-0.8-i486-1ant...
PACKAGE DESCRIPTION:
htop: htop 0.8
htop:
htop: This is htop, an interactive process viewer for Linux.
htop:
htop: Package Created By: Anton Dobkin
Executing install script for htop-0.8-i486-1ant...

agora que sabemos como se instala (viram como foi facil?) pacotes, veremos como se atualiza pacotes…

baixe a versao corrente do htop, ainda em seu diretorio de pacotes…

bode@bodacious:~/pacotes$ wget http://repository.slacky.eu/slackware-12.2/hardware/htop/0.8.1/htop-0.8.1-i486-2sl.tgz

mande um upgradepkg no danado para ver que belezinha!
root@bodacious:/home/bode/pacotes# upgradepkg htop-0.8.1-i486-2sl.tgz

se tudo correu bem, sua saida foi essa:

+==============================================================================
| Upgrading htop-0.8-i486-1ant package using ./htop-0.8.1-i486-2sl.tgz
+==============================================================================

Pre-installing package htop-0.8.1-i486-2sl...

Removing package /var/log/packages/htop-0.8-i486-1ant-upgraded-2009-02-23,18:31:13...
--> Deleting /usr/doc/htop-0.8/AUTHORS
--> Deleting /usr/doc/htop-0.8/COPYING
--> Deleting /usr/doc/htop-0.8/ChangeLog
--> Deleting /usr/doc/htop-0.8/INSTALL
--> Deleting /usr/doc/htop-0.8/NEWS
--> Deleting /usr/doc/htop-0.8/README
--> Deleting /usr/doc/htop-0.8/TODO
--> Deleting /usr/share/man/man1/htop.1.gz
--> Deleting empty directory /usr/doc/htop-0.8/

Installing package htop-0.8.1-i486-2sl...
PACKAGE DESCRIPTION:
htop: Htop (Process Viewer)
htop:
htop: This is htop, an interactive process viewer for Linux. It is a text-mode
htop: application (for console or X terminals) and requires ncurses.
htop: Tested with Linux 2.4 and 2.6.
htop:

Package htop-0.8-i486-1ant upgraded with new package ./htop-0.8.1-i486-2sl.tgz.

viu soh? divertido saber que o upgradepkg reconheceu que estamos lidando com uma versao mais nova do pacote htop e substituiu os arquivos velhos pelos novos… ele olha o nome dos pacotes (que devem ser iguais e no nosso caso eh htop mesmo), depois ele olha o numero da versao entre os pacotes… caso os numeros de versao sejam iguais, ele ira decidir qual eh o pacote mais novo baseando-se no numero da compilacao do mesmo, que no caso, em nosso novo pacote chama-se: 2sl… e se estivessemos com htop 0.8.1 instalado e sua versao de compilaçao fosse 1sl, este seria substituido da mesma maneira como foi substituido, pois o upgradepkg iria saber como proceder…

prontos para remover nosso recem-instalado pacote, htop?

ah, se fosse voce dava uma olhadinha esperta no htop para ver como ele eh… tah ai um utilitario legal:

bom, se mesmo assim voce estiver realmente empenhado em metralhar o infeliz, basta fazer o seguinte com o coitado:

root@bodacious:/home/bode/pacotes# removepkg htop

a saida da remoçao eh a seguinte:

Removing package /var/log/packages/htop-0.8.1-i486-2sl...
Removing files:
--> Deleting /usr/bin/htop
--> Deleting /usr/doc/htop-0.8.1/COPYING
--> Deleting /usr/doc/htop-0.8.1/INSTALL
--> Deleting /usr/doc/htop-0.8.1/NEWS
--> Deleting /usr/doc/htop-0.8.1/README
--> Deleting /usr/doc/htop-0.8.1/htop.SlackBuild
--> Deleting /usr/doc/htop-0.8.1/slack-desc
--> Deleting /usr/man/man1/htop.1.gz
--> Deleting /usr/share/applications/htop.desktop
--> Deleting /usr/share/pixmaps/htop.png
--> Deleting empty directory /usr/doc/htop-0.8.1/

chegamos facilmente a conclusao de que as funcoes do pkgtool sao baseadas em varios scripts independentes… e realmente, lidar com pacotes no Slackware eh algo simples de se fazer… ao contrario do que reza a lenda em alguns cantos sombrios da web…

ainda nao falei sobre os problemas de resoluçao de dependencias entre pacotes, pois pretendo escrever isso em um futuro post…

sendo o primeiro da saga, acredito que esteja de bom tamanho o que vimos ateh agora e em breve estaremos destrinchando as inumeras possibilidades e assuntos relacionados ao gerenciamento e criacao de pacotes para o Slackware! ufa! =D

sussa na montanha russa galera?
[]’s!
t++!

2 Respostas to “pacotes no slackware, parte 1: pkgtools”

  1. Artigo muito bom!

    Parabéns e obrigado!

  2. Lucius Says:

    Na montanha russa O.o

Deixe um comentário