Criador de pacotes para o Slackware

Publicado por Leandro Santiago 21/07/2007

[ Hits: 4.910 ]

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

Verifica duplicação de IPs na rede

Adicione Hosts no Nagios

Sem APTONCD

Script para verificação do serviço do Apache (webserver) em sistemas Linux Ubun

Menu tarefas com SSH


  

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