Gerando pacotes do Slackware
Publicado por Perfil removido (última atualização em 14/07/2011)
[ Hits: 6.700 ]
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 de Instalação de Layer7 no CentOS 6.0
Liberar cliente SSH no firewall
ORACLE 10.2g - Fazendo Restore
Script de monitoracao de servicos
Script de Backup que compacta Segmentado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Instalar debian testing (13) "por cima" do debian 12 (2)
firefox nao guarda meus logins nos sites (0)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (1)