#!/bin/bash # Escrito por : Hamacker (sirhamacker@gmail.com) 2006-10-30 # Função : # Este script cria um .deb para um pacote já précompilado e nas # definicoes desse script o destino desse aplicativo será sempre # em /opt/nomedoprograma # se quiser '/usr/local' basta mudar 'PACKAGE_FOLDER' para : # PACKAGE_FOLDER=usr/local # apenas nao coloque barra no inicio do path # # se uma pasta for informada como parametro entao essa pasta será o # nosso pacote a ser criado. Essa pasta deverá ter a conotação : # nomedoprograma-versao # # Obs: Este script foi escrito com a ajuda deste link : # http://synthesize.us/HOWTO_make_a_deb_archive_without_dpkg # CURRENT=`pwd` # Informacoes peculiares sobre o pacote PACKAGE_NAME="roadfighter" PACKAGE_VERSION="1.0" PACKAGE_SECTION="X11/Games" PACKAGE_MAINTAINER="hamacker " SHORTCUT_CATEGORIES="Application;Game;" # pasta onde sera instalado PAGKAGE_FOLDER="opt" # nome da aplicacao APPLICATION_NAME="RoadFighter Remake" # nome do executavel (nao colocar barra no inicio) APLICATION_BIN="rf" # nome do icone que sera utilizado (nao colocar barra no inicio) APPLICATION_ICON=$PAGKAGE_FOLDER/$PACKAGE_NAME/graphics/title.jpg # descricao curta PACKAGE_DESCRIPTION="This is the remake of another Konami classic: Road Fighter." # destino do pacote : BUILD_DESTINY=$CURRENT/build/$PAGKAGE_FOLDER/$PACKAGE_NAME/ ######################################### # leia-me que será criado para o pacote # ######################################### PACKAGE_README[1]="This is the remake of another Konami classic: Road Fighter." PACKAGE_README[1]="This remake was created to enter in the Retro Remakes competition 2003," PACKAGE_README[1]=" and finished in 7th place out of 83 contestants. You can download the full version." #################################################################### # dentro de build/ recrio a estrutura que desejo ser instalada... # #################################################################### if [ -d "$CURRENT/build" ] ; then rm -fR $CURRENT/build fi mkdir -p $BUILD_DESTINY #################################################################### # ... e depois copio os arquivos para lá # #################################################################### cp -vR $CURRENT/* $BUILD_DESTINY/ # apagar eventuais .deb que tenham sido gerados antes rm -f $BUILD_DESTINY/*.deb # remover este mesmo script #rm -f $BUILD_DESTINY/criar_pacote_*deb.sh rm -f $BUILD_DESTINY/criar_pacote_*deb.sh~ ################################################# # Construção do pacote tambem deve ser removido # ################################################# rm -fR $BUILD_DESTINY/build #################################################################### # remover arquivos desnecessarios no pacote # #################################################################### #rm -fR $BUILD_DESTINY/src #rm -fR $BUILD_DESTINY/obj #rm -f $BUILD_DESTINY/makefile # entro dentro do diretorio de construcao, e crio uma pasta doc mkdir -p $CURRENT/build/etc mkdir -p $CURRENT/build/opt mkdir -p $CURRENT/build/usr/share/doc/$PACKAGE_NAME ############################## # Escrever um arquivo README # ############################## rm -f $CURRENT/build/usr/share/doc/$PACKAGE_NAME/README touch $CURRENT/build/usr/share/doc/$PACKAGE_NAME/README for linha_readme in "${PACKAGE_README[@]}"; do echo $linha_readme >>$CURRENT/build/usr/share/doc/$PACKAGE_NAME/README done ########################################## # criando um atalho para minha aplicação # ########################################## mkdir -p $CURRENT/build/usr/share/applications cat > $CURRENT/build/usr/share/applications/$PACKAGE_NAME.desktop < $CURRENT/build/usr/bin/$PACKAGE_NAME.sh <$CURRENT/build/control echo "Version: $PACKAGE_VERSION">>$CURRENT/build/control echo "Section: $PACKAGE_SECTION">>$CURRENT/build/control echo "Priority: optional">>$CURRENT/build/control echo "Architecture: all">>$CURRENT/build/control echo "Installed-Size: `du -ks usr|cut -f 1`">>$CURRENT/build/control #echo "Replaces: $PACKAGE_NAME">>$CURRENT/build/control #echo "Provides: $PACKAGE_NAME">>$CURRENT/build/control echo "Maintainer: $PACKAGE_MAINTAINER">>$CURRENT/build/control echo "Description: $PACKAGE_DESCRIPTION">>$CURRENT/build/control for linha_long_desc in "${PACKAGE_README[@]}"; do echo " $linha_long_desc" >>$CURRENT/build/control done ############################################################################ # Setting this environment variable fixes Apple's modified GNU tar so that # # it won't make dot-underscore AppleDouble files. Google it for details... # ############################################################################ #export COPY_EXTENDED_ATTRIBUTES_DISABLE=1 ############################################### # criar arquivo de dados em formato tarball # # neste exemplo, apenas pastas usr, opt e etc # # podem ser instaladas # ############################################### cd $CURRENT/build tar czvf data.tar.gz usr/ opt/ etc/ # criar arquivo de controle em formato tarball tar czvf control.tar.gz control # criar o arquivo debian-binary echo "2.0" >$CURRENT/build/debian-binary # create the ar (deb) archive cd $CURRENT ar -r $CURRENT/$PACKAGE_NAME-$PACKAGE_VERSION.deb \ $CURRENT/build/debian-binary \ $CURRENT/build/control.tar.gz \ $CURRENT/build/data.tar.gz if [ $? -ne 0 ] ; then echo "ops! falhou a criação do pacote $CURRENT/$PACKAGE_NAME-$PACKAGE_VERSION.deb !" exit; else echo "[sucesso] Pacote criado com sucesso." echo "Para instalar :" echo " sudo dpkg -i $CURRENT/$PACKAGE_NAME-$PACKAGE_VERSION.deb" echo "Para remover :" echo " sudo apt-get -y --purge remove $PACKAGE_NAME" fi echo "fim." # remover os tarballs temporarios rm $CURRENT/build/data.tar.gz $CURRENT/build/control.tar.gz # retornar ao diretorio inicial cd $CURRENT