#!/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 # # Permissões que voce queira aplicar aos arquivos antes de empacota-los Ç # acertando todas as permissoes de arquivos : # sudo chown -vR nobody.users ./ # sudo find ./ -type f -exec chmod 666 {} \; # sudo find ./ -type d -exec chmod 777 {} \; # sudo find ./*.sh -type f -exec chmod 777 {} \; CURRENT=`pwd` #if ! [ "$USER" = "root" ] ; then # echo "somente usuario root pode criar pacotes .deb" # exit 1; #fi # Informacoes peculiares sobre o pacote PACKAGE_NAME="ie6" PACKAGE_VERSION="6.0" PACKAGE_SECTION="X11/Internet" PACKAGE_MAINTAINER="hamacker " SHORTCUT_CATEGORIES="Application;Network;" # pasta onde sera instalado PAGKAGE_FOLDER="opt" # nome da aplicacao APPLICATION_NAME="Microsoft Internet Explorer 6" # nome do executavel (nao colocar barra no inicio) APLICATION_BIN="ie6" # nome do icone que sera utilizado (nao colocar barra no inicio) APPLICATION_ICON=$PAGKAGE_FOLDER/$PACKAGE_NAME/ies4linux.svg # descricao curta PACKAGE_DESCRIPTION="Browser de Internet alternativo no Linux : Microsoft Internet Explorer 6." # destino do pacote : BUILD_DESTINY=$CURRENT/build/$PAGKAGE_FOLDER/$PACKAGE_NAME/ ######################################### # leia-me que será criado para o pacote # ######################################### PACKAGE_README[1]="Browser de Internet alternativo no Linux : Microsoft Internet Explorer 6." PACKAGE_README[2]="Não use o IE indiscriminadamente, as falhas de segurança desse browser poderão" PACKAGE_README[3]=" colocar em risco seu sistema e voce não terá o Windows Update para atualizar esse navegador." PACKAGE_README[4]="Use-o apenas quando alguma página na internet que for visitar barrar seu navegador favorito e/ou" PACKAGE_README[5]=" requerer apenas o Internet Explorer." #################################################################### # 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/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 "Depends: wine">>$CURRENT/build/control echo "Recommends: msttcorefonts">>$CURRENT/build/control #echo "Depends: msttcorefonts">>$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 ../$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 ../$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 # remover o diretorio temporario rm -fR $CURRENT/build/ # retornar ao diretorio inicial cd $CURRENT