Criador de pacotes para o Slackware

Publicado por Leandro Santiago 21/07/2007

[ Hits: 4.888 ]

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

Remover linhas duplicadas em arquivos

Controlando espaço de disco com quotas

Script para administração de usuários de fácil compreensão.

Algoritmo para saber qual o maior número dentro de uma Array

reboot


  

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