Criador de pacotes para o Slackware

Publicado por Leandro Santiago 21/07/2007

[ Hits: 5.042 ]

Homepage: http://leandrosan.wordpress.com

Download slack-desk-create




Pequeno bash-script que cria um pacote compilado para o slackware.

Recebe um parâmetro, que é o conteúdo da descrição do pacote. É bem simples, mas me ajudou bastante. Deve ser usado no lugar do make install (como root).

Lógico que é só um núcleo. Ainda não adicionei recursos como tratamento de parâmetros ou verificação de uid, para saber se é root.

Espero que ajude alguém como me ajudou.

  



Esconder código-fonte

#!/bin/bash

# slack-pkg-create.sh
# Escrito por Leandro Santiago da Silva
## leandrosansilva $$AT$$ gmail $$DOT$$ com
## Maringá, Paraná, Brasil 11/07/07

## Script que cria um pacote compilado para o Slackware
# Deve ser usado no lugar do make install

## Define a arquitetura do Seu computador
ARQUITETURA=i686

## Release
EXTRAV=1ten

# O nome do pacote, já com a versão
NOME="`basename $PWD`"

# Cria o pacote expandido em /tmp/packages
make install DESTDIR=/tmp/packages/"$NOME"

# Acessa o diretório /tmp/packages
cd /tmp/packages/"$NOME"

# Cria os diretórios de documentos e de scripts de instalação
mkdir -p usr/doc/"$NOME" install

# Copio arquivos de documentos, etc
cp "$OLDPWD"/{INSTALL,LICENCE,AUTHORS,COPYING,TODO,VERSION,NEWS,README} usr/doc/"$NOME"

# Defino o nome do pacote, sem versão.
NOMESEMVER="`echo $NOME  | rev | cut -f2- -d- | rev `"

# Crio um arquivo install/slack-desc com a descrição do pacote, com o conteúdo do arquivo recebido como primeiro parâmetro
# Que deve estar no diretório onde este script foi chamado
while read LINHA
do
   echo $NOMESEMVER: $LINHA
done < "$OLDPWD"/"$1" >> install/slack-desc

# eStripo os arquivos (peguei do site http://linuxpackages.net/
{
   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip --str ip-debug
   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded
   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 
} &> /dev/null    

# Por fim, crio o pacote no diretório onde foi chamado este script
yes | /sbin/makepkg "$OLDPWD"/$NOME-$ARQUITETURA-$EXTRAV.tgz

# Volto ao diretório original (desnecessário)
cd "$OLDPWD"

# Excluo o diretório onde foi criado o pacote
rm -rf /tmp/packages/"$NOME"



 

Scripts recomendados

Mostrar conifguração da placa de rede

Backup de Diretórios

Pesquisa de grupos do sistema por nome de grupo ou gid

Script para verficar se um pacote está instalado no Slackware

Script de instalação do metasploit no Ubuntu


  

Comentários
[1] Comentário enviado por tenchi em 22/07/2007 - 00:51h

Ah, esqueci de uma observação:
Ele funciona bem com programas que usam o autoconf (e em alguns casos, o cmake). Caso não funcione, subsitua, na linha 10, DESTDIR por PREFIX.
Se ainda sim não funcionar, você provavelmente terá que empacotar o programa manualmente.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts