Gerando pacotes do Slackware
Publicado por Perfil removido (última atualização em 14/07/2011)
[ Hits: 6.532 ]
Este script foi desenvolvido para gerar pacotes .txz "Slackware" diretamente do código fonte.
Para saber as opções do script use o parâmetro -h:
./dgfpacote -h
#!/bin/bash # ----------------------------------------------------------------------- # - Feito por: Douglas Giorgio Fim - # - E-mail: dgf_skt@hotmail.com - # - MSN: dgf_skt@hotmail.com - # - Programa: dgfpacote - # - Versao: 2.0 - # - - # - Este script pode ser alterado e distribuido por qualquer pessoa, - # - desde que este quadro se mantenha inalterado! - # - - # - Obs.: Este script foi desenvolvido para gerar pacotes .txz "Slackware" diretamente do codigo fonte - # ----------------------------------------------------------------------- PWD=`pwd` ARCH=`arch` DGFBASETMP=/tmp/DGF/TMP DGFBASE=/tmp/DGF/PKG PKG="" DIR="" if [ ! -z $DGFBASE ]; then mkdir -p "$DGFBASE" fi if [ ! -z $DGFBASETMP ]; then mkdir -p "$DGFBASETMP" fi if [ "$ARCH" = "x86_64" ]; then if [ -d /usr/lib64 ]; then LIB=/usr/lib64 else LIB=/usr/lib fi else LIB=/usr/lib fi ######################################### # Inicio das Funções ######################################### HELP() { echo -e " Este script foi desenvolvido para gerar pacotes .txz \"Slackware\" diretamente do codigo fonte. Ele é compativel com os seguintes pacotes: .tar.gz .tgz .tar.bz2 .tar .bz2 .rar .zip Formas de uso: dgfpacote pacote.tar.gz Caso ja tenha o pacote descompactado, você pode escolher uma <opções> para setar o diretorio e dar sequencia na criação do pacote, compilar kernel e limpar os restos. dgfpacote <opções> \"diretorio\pacote\" <opções> \e[1;01m-c\e[0m - da sequencia na criação do pacote a partir do \e[1;01m./configure\e[0m \e[1;01m-m\e[0m - da sequencia na criação do pacote a partir do \e[1;01mmake\e[0m \e[1;01m-mi\e[0m - da sequencia na criação do pacote a partir do \e[1;01mmake install\e[0m \e[1;01m-mp\e[0m - da sequencia na criação do pacote a partir do \e[1;01mmakepkg\e[0m \e[1;01m-mk\e[0m - gera um pacote do kernel a partir do fonte \e[1;01m\"USE SOMENTE PACOTES DO FONTE\"\e[0m \e[1;01m-l\e[0m - limpa/remove os arquivos temporarios \e[1;01m-lp\e[0m - limpa/remove o os pacotes criados \e[1;01m-h\e[0m - HELP! É necessário estar logado como root para o funcionamento perfeito do script Douglas Giorgio Fim " } AVISO() { echo -e "\e[1;01m############################################################\e[0m" echo -e "\e[1;01m$1\e[0m" echo -e "\e[1;01m############################################################\e[0m" } ERRO() { echo "[ERRO!] O script foi interrompido no processo: $1" exit 1 } DESCOMPACTA() { VERIFICA(){ if [ -d "$DGFBASETMP/$DIRETORIO" ]; then echo -n "O diretório já existe, deseja continuar a extração? [N/y] " ; read -n 1 RESPOSTA_VERIFICA if [ "$RESPOSTA_VERIFICA" = "" ]; then RESPOSTA_VERIFICA=n fi else RESPOSTA_VERIFICA=y fi RESPOSTA_VERIFICA=`echo $RESPOSTA_VERIFICA | tr [A-Z] [a-z]` } case $PKG in *.tar.gz) COMPACTACAO=.tar.gz ; DIRETORIO=`tar -tvf $DIR/$PKG | awk 'NR == 1{print $6}' | sed 's/\(.*\)\/\(.*\)/\1/'` ; VERIFICA ; if [ $RESPOSTA_VERIFICA = y ]; then tar -xzvf $DIR/$PKG -C $DGFBASETMP ; fi ;; *.tgz) COMPACTACAO=.tar.gz ; DIRETORIO=`tar -tvf $DIR/$PKG | awk 'NR == 1{print $6}' | sed 's/\(.*\)\/\(.*\)/\1/'` ; VERIFICA ; if [ $RESPOSTA_VERIFICA = y ]; then tar -xzvf $DIR/$PKG -C $DGFBASETMP ; fi ;; *.tar.bz2) COMPACTACAO=.tar.bz2 ; DIRETORIO=`tar -tvf $DIR/$PKG | awk 'NR == 1{print $6}' | sed 's/\(.*\)\/\(.*\)/\1/'` ; VERIFICA ; if [ "$RESPOSTA_VERIFICA" = y ]; then tar -xjvf $DIR/$PKG -C $DGFBASETMP ; fi ;; *.tar) COMPACTACAO=.tar ; DIRETORIO=`tar -tvf $DIR/$PKG | awk 'NR == 1{print $6}' | sed 's/\(.*\)\/\(.*\)/\1/'` ; VERIFICA ; if [ $RESPOSTA_VERIFICA = y ]; then tar -xvf $DIR/$PKG -C $DGFBASETMP ; fi ;; *.bz2) COMPACTACAO=.bz2 ; DIRETORIO=`echo $DIR/$PKG | sed -e 's/'$COMPACTACAO'//g'` ; VERIFICA ; if [ $RESPOSTA_VERIFICA = y ]; then bunzip $DIR/$PKG $DGFBASETMP || bunzip2 $pkg ; fi ;; *.rar) COMPACTACAO=.rar ; VERIFICA ; if [ $RESPOSTA_VERIFICA = y ]; then unrar x $DIR/$PKG $DGFBASETMP ; fi ;; *.zip) COMPACTACAO=.zip ; VERIFICA ; if [ $RESPOSTA_VERIFICA = y ]; then gunzip $DIR/$PKG $DGFBASETMP ; fi ;; esac } CONFIGURE() { CONFIGURE2() { if [ -e ./configure ]; then ./configure --help || ./configure -help COMANDO="./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=$LIB " echo -n "Acrescente os parametros que desejar: $COMANDO" ; read PARAMETROS COMANDO="./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=$LIB $PARAMETROS" && AVISO "$COMANDO" && ./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=$LIB $PARAMETROS #|| # COMANDO="./configure --prefix=/usr --libdir=$LIB $PARAMETROS" && # AVISO "$COMANDO" && # ./configure --prefix=/usr --libdir=$LIB $PARAMETROS || # COMANDO="./configure --prefix=/usr $PARAMETROS" && # AVISO "$COMANDO" && # ./configure --prefix=/usr $PARAMETROS || ERRO "$COMANDO" fi } if [ -e $DGFBASETMP/$DIRETORIO/configure ]; then cd $DGFBASETMP/$DIRETORIO CONFIGURE2 elif [ -e $DGFBASETMP/$DIRETORIO/src/configure ]; then cd $DGFBASETMP/$DIRETORIO/src CONFIGURE2 fi } MAKE() { MAKE2() { echo -n "Acrescente os parametros que desejar no make: " ; read PARAMETROS_MAKE COMANDO="make $PARAMETROS_MAKE" AVISO "$COMANDO" make $PARAMETROS_MAKE || ERRO $COMANDO } if [ -e $DIR/$DIRETORIO/Makefile ]; then MAKE2 elif [ -e $DIR/$DIRETORIO/src/Makefile ]; then cd $DIR/src MAKE2 fi } MAKEKERNEL() { MAKEKERNEL2() { COMANDO="make clean" AVISO "$COMANDO" make clean || ERRO $COMANDO COMANDO="mrproper" AVISO "$COMANDO" make mrproper || ERRO $COMANDO while [ ! -f "$DGFBASETMP/$DIRETORIO/.config" ]; do echo "[1] make menuconfig - PADRÃO!" echo "[2] make oldconfig " echo "[3] make config" echo "[4] make xconfig" echo "Escolha um modo de configuração: " ; read -n 1 ESCOLHA_CONFIG if [ "$ESCOLHA_CONFIG" = "" ]; then ESCOLHA_CONFIG=1 fi case $ESCOLHA_CONFIG in 1)COMANDO="make menuconfig" AVISO "$COMANDO" make menuconfig || ERRO $COMANDO ;; 2)COMANDO="make oldconfig" AVISO "$COMANDO" make oldconfig || ERRO $COMANDO ;; 3)COMANDO="make config" AVISO "$COMANDO" make config || ERRO $COMANDO ;; 4)COMANDO="make xconfig" AVISO "$COMANDO" make xconfig || ERRO $COMANDO ;; esac done COMANDO="make" AVISO "$COMANDO" make || ERRO $COMANDO COMANDO="make bzImage" AVISO "$COMANDO" make bzImage COMANDO="make modules" AVISO "$COMANDO" make modules || ERRO $COMANDO COMANDO="make targz-pkg" AVISO "$COMANDO" make targz-pkg cd "$DGFBASETMP/$DIRETORIO" NUM=1 NOME_PKG=$DIRETORIO-$ARCH-$NUM.tgz while [ -e ../$NOME_PKG ]; do let NUM++ NOME_PKG=$DIRETORIO-$ARCH-$NUM.tgz done mv $DIRETORIO.tar.gz $DGFBASE/$NOME_PKG DIR2=`echo $DIRETORIO`-TMP mkdir $DGFBASETMP/$DIR2 } if [ -e $DGFBASETMP/$DIRETORIO/Makefile ]; then cd $DGFBASETMP/$DIRETORIO MAKEKERNEL2 elif [ -e $DGFBASETMP/$DIRETORIO/src/Makefile ]; then cd $DGFBASETMP/$DIRETORIO/src MAKEKERNEL2 fi } MAKE_INSTALL() { MAKE_INSTALL2() { PARAMETRO_MAKE_INSTALL="INSTALL_TOP=$1 PREFIX=$1 DESTDIR=$1 INSTALL_ROOT=$1 PREFIX_ROOT=$1" COMANDO="make install $PARAMETRO_MAKE_INSTALL" AVISO "$COMANDO" make install ""$PARAMETRO_MAKE_INSTALL"" || ERRO "$COMANDO" } cd $DGFBASETMP/$DIRETORIO DIR2=`echo $DIRETORIO`-TMP mkdir $DGFBASETMP/$DIR2 MAKE_INSTALL2 "$DGFBASETMP/$DIR2" } MAKEPKG(){ cd $DGFBASETMP/$DIR2 NUM=1 NOME_PKG=$DIRETORIO-$ARCH-$NUM.txz while [ -e $DGFBASE/$NOME_PKG ]; do let NUM++ NOME_PKG=$DIRETORIO-$ARCH-$NUM.txz done COMANDO="makepkg -l y -c n $DGFBASE/$NOME_PKG" AVISO $COMANDO makepkg -l y -c n $DGFBASE/$NOME_PKG || ERRO "$COMANDO" PACOTE_INSTALADO=`for i in /var/log/packages/* ; do echo $i | sed -e 's/\(.*\)-\(.*\)-\(.*\)-\(.*\)/\1/;s/[ ]//g;s/\(.*\)\/\(.*\)/\2/;s/[ ]//g' ;done` PACOTE_INSTALAR=`echo "$DIRETORIO" | sed -e 's/\(.*\)-\(.*\)/\1/;s/[ ]//g'` VERIFICACAO_PACOTE=`echo $PACOTE_INSTALADO | grep -w "$PACOTE_INSTALAR"` if [ "$VERIFICACAO_PACOTE" = "" ]; then if [ -e $DGFBASE/$NOME_PKG ]; then RESPOSTA="errada" while [ "$RESPOSTA" = "errada" ]; do echo -n "Deseja instalar o pacote? $DGFBASE/$NOME_PKG [S/n] : " ; read -n 1 RESPOSTA RESPOSTA=`echo $RESPOSTA | tr A-Z a-z` if [ -z $RESPOSTA ]; then RESPOSTA=s fi case $RESPOSTA in [ys]) AVISO "installpkg $DGFBASE/$NOME_PKG" ; installpkg $DGFBASE/$NOME_PKG ;; n) echo ;; *) RESPOSTA="errada" ;; esac done fi else if [ -e $DGFBASE/$NOME_PKG ]; then RESPOSTA="errada" while [ "$RESPOSTA" = "errada" ]; do echo -ne "Existe outro pacote \e[1;01m\"$PACOTE_INSTALAR\"\e[0m instalado, deseja atualizar? $DGFBASE/$NOME_PKG [S/n] : " ; read -n 1 RESPOSTA RESPOSTA=`echo $RESPOSTA | tr A-Z a-z` if [ -z $RESPOSTA ]; then RESPOSTA=s fi case $RESPOSTA in [ys]) AVISO "upgradepkg $DGFBASE/$NOME_PKG" ; upgradepkg $DGFBASE/$NOME_PKG ;; n) echo ;; *) RESPOSTA="errada" ;; esac done fi fi } LIMPA() { RESPOSTA2="errada" while [ "$RESPOSTA2" = "errada" ]; do echo "Deseja excluir os restos? "\"$DGFBASETMP/$DIRETORIO\" \"$DGFBASETMP/$DIR2\"" [S/n]" ; read -n 1 RESPOSTA2 echo RESPOSTA2=`echo $RESPOSTA2 | tr A-Z a-z` if [ -z $RESPOSTA2 ]; then RESPOSTA2=s fi case $RESPOSTA2 in [ys]) rm -rv $DGFBASETMP/$DIRETORIO ; rm -rf $DGFBASETMP/$DIR2 ;; n) echo ;; *) RESPOSTA2="errada" ;; esac done } ######################################### # Fim das Funções ######################################### case $1 in -c) if [ -d $2 ]; then cd $2 VAR=$2 if [ $VAR = './' ]; then VAR=$PWD fi else echo "Diretorio invalido!" ; exit 1 fi DIR=`dirname $VAR` PKG=`basename $VAR` DIRETORIO=$PKG CONFIGURE MAKE MAKE_INSTALL MAKEPKG LIMPA AVISO "O pacote permanece em: $DGFBASE/$NOME_PKG" ;; -m) if [ -d $2 ]; then cd $2 VAR=$2 if [ $VAR = './' ]; then VAR=$PWD fi else echo "Diretorio invalido!" ; exit 1 fi DIR=`dirname $VAR` PKG=`basename $VAR` DIRETORIO=$PKG MAKE MAKE_INSTALL MAKEPKG LIMPA AVISO "O pacote permanece em: $DGFBASE/$NOME_PKG" ;; -mk) if [ -n $2 ]; then if [ -d $2 ]; then DIR=`dirname $2` PKG=`basename $2` DIRETORIO=$PKG MAKEKERNEL ; LIMPA else DIR=`dirname $2` PKG=`basename $2` DIRETORIO=$PKG DESCOMPACTA MAKEKERNEL LIMPA AVISO "O pacote permanece em: $DGFBASE/$NOME_PKG" fi fi ;; -mi)if [ -d $2 ]; then cd $2 VAR=$2 if [ $VAR = './' ]; then VAR=$PWD fi else echo "Diretorio invalido!" ; exit 1 fi DIR=`dirname $VAR` PKG=`basename $VAR` DIRETORIO=$PKG MAKE_INSTALL MAKEPKG LIMPA AVISO "O pacote permanece em: $DGFBASE/$NOME_PKG" ;; -mp)if [ -d $2 ]; then cd $2 VAR=$2 if [ $VAR = './' ]; then VAR=$PWD fi else echo "Diretorio invalido!" ; exit 1 fi DIR=`dirname $VAR` DIR2=`basename $VAR` DIRETORIO=$PKG MAKEPKG LIMPA AVISO "O pacote permanece em: $DGFBASE/$NOME_PKG" ;; -l) AVISO "rm -rf $DGFBASETMP/*" ; rm -rf $DGFBASETMP/* ;; -lp) AVISO "rm -rf $DGFBASE/*" ; rm -rf $DGFBASE/* ;; -h) HELP ;; *) DIR=`dirname $1` PKG=`basename $1` DESCOMPACTA CONFIGURE MAKE MAKE_INSTALL MAKEPKG LIMPA AVISO "O pacote permanece em: $DGFBASE/$NOME_PKG" exit 1 ;; esac exit 1
Script para acessar terminais LInux e Unixes remotos do XDM
mailnow - Envia mensagens pelo shell
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (2)
Ubuntu — tentando iniciar o windows? (0)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba