Quem usa
Slackware sabe como é chato nunca encontrar softwares com pacotes próprios para sua distro (tgz). Sempre é a mesma coisa... versões disponíveis: (.rpm), (.deb), (.tar.gz). E a gente acaba sempre tendo que compilar o programa, o que além de demorar muito mais, dificulta a remoção do programa caso este não atenda as nossas necessidades.
Por isto nesta dica irei demonstrar uma forma fácil de criar seus próprios pacotes sem dor de cabeça.
Obs.: A intenção desta dica não é criar pacotes Slackware de softwares de grande porte, mas sim de pequenas aplicações de sua própria autoria, já que seria necessário muito mais explanação, pois o processo é um pouco mais complicado.
O Slackware vem com uma ferramenta já instalada para criar pacotes que chama-se
makepkg. Ela é útil, mas usar apenas ela causa alguns certos problemas, por isso junto a ela usaremos uma outra ferramenta que se chama
checkinstall.
Você pode baixar o checkinstall a partir desde link:
Explicarei por que usaremos o checkinstall e o makepkg. A descrição do pacote .tgz que aparece quando o pacote é instalado deve ser criada em codificação UTF-8 e obedecer a uma série de parâmetros. Poderíamos fazê-lo manualmente, mas o checkinstall faz isso por nós.
Ok, crie uma pasta onde você colocará o seu projeto. Dentro desta pasta crie uma árvore de diretórios semelhante a do
Linux... por exemplo, se o seu programa será instalado em /usr/bin a sua árvore será:
# mkdir diretoriocriado/usr/bin/exeprojeto
Feito isso crie uma pasta chamada install no seu diretório criado:
# mkdir diretoriocriado/install
Dentro do diretório criado, execute o comando:
# checkinstall -S --pkgname=nomedepacote --pkgversion=versao --pkgarch=arquiteturacompilada
Feito isso o checkinstall criará um editor para você digitar a descrição do seu pacote, esse editor sairá assim que você deixar uma linha em branco ou pressionar CTRL+D.
>>NomedoPrograma - O que o Programa Faz
>>várias
>>linhas
>>de
>>descrição
Feito isso o checkinstall pedirá para você verificar as suas configurações do pacote e criará um pacote.
Aqui está o X da questão, o checkinstall, pelo menos comigo, não cria a arvore de diretórios corretamente e o pacote fica defeituoso. Para solucionar isso:
# tar -xzvf nomedopacote-versao-arch-1.tgz
Extrairemos o pacote tgz criado para que os arquivos doinst.sh e slack-desc criados pelo checkinstall sejam aproveitados.
O arquivo
doinst.sh muda permissões, cria links simbólicos e seta variáveis ao instalar o programa (se necessário).
O arquivo
slack-desc é a descrição do pacote tgz digitada no editor do checkinstall
Esses dois arquivos ficam localizados dentro da pasta install.
Terminando de extrair o pacote, remova o arquivo .tgz e um arquivo description-pak criado pelo checkinstall. Feito isso execute o comando:
# makepkg nomedoprograma-versao-arch.tgz
Pronto, seu pacote será criado e estará pronto para usar!