X-IPI Cepero Bonilla-MailScanner: Found to be clean
X-MailScanner-Envelope-From: [EMAIL PROTECTED]
X-Spam-Status: No


Hola Listero yo ya habia preguntado sobre esto y nadie supo darme respuesta ahora aqui les va lo que pudimos lograr hacer. No es más que un Bash que te permite descompilar y compilar un .deb además de modificarlo y poder subirlo a un Mirror. Deben guardarlo en /usr/bin/ y ponerle el nombre desado. Lugo darle los permisos estos:
chmod 777 /usr/bin/nombre

Notas: Dene guardarlo .sh

Salu2s a todos cualquier duda contactenme.


#!/bin/bash

#------------------------------------------------------------------
# Copyright (C)  2008, Maikel Stinga [EMAIL PROTECTED]
# Distribuido bajo la licensia GNU
#------------------------------------------------------------------

# directorio donde montaremos el mirror
# no poner la ultima barra
# edita esta variable
#
#despues añadir al sources.list la siguiente linea
#deb file:///mirror/extra ./

mirror_extra="/mirror/extra"

# NO EDITES DESDE AQUI

#variables más comodas
modificador=$1
fichero=$2
destino=$3

ayuda() {
echo "Uso de empaqueta_deb.sh"
echo ""
echo "   Desempaquetar:"
echo " empaqueta_deb.sh --desempaqueta (-d) /ruta/donde/este/archivo.deb"
echo "     Esto descomprime nuestro deb a un directorio temporal"
echo "     /tmp/paquete/tmp/"
echo ""
echo "   Empaquetar:"
echo "     empaqueta_deb.sh --empaqueta (-e) [-a /destino/del/mirror]"
echo "     Esto empaqueta el deb préviamente desempaquetado"
echo "     generando de nuevo el archivo .deb"
echo "     "
echo "     ejemplos:"
echo ""
echo "         empaqueta_deb.sh -d /usr/src/sofilin_0.0.3_i386.deb"
echo ""
echo "         empaqueta_deb.sh -e -a /mirror/extra"
exit 0
}

desempaqueta() {

#salimos si no hay argumento en $fichero
if [ "$fichero" == "" ]; then
 echo "No se ha especificado ningún paquete .deb";
 exit 1
 fi

#miramos que no haya otro paquete para sobreescribirlo accidentamente
if [ -f "/tmp/paquete/tmp/DEBIAN/control" ]; then
nombre_p=`cat /tmp/paquete/tmp/DEBIAN/control |grep ^Package: | awk '{print $2}'` version_p=`cat /tmp/paquete/tmp/DEBIAN/control |grep ^Version: | awk '{print $2}'`
 echo "###################################"
 echo "#                                 #"
 echo "#  Ya hay un paquete deb en /tmp  #"
 echo "#                          ======>#  ${nombre_p}_${version_p}   "
 echo "#         ¿Quiere seguir?         #"
 echo "#                                 #"
 echo -n "###################################    (S/n) "
 read seguir
 if [ "$seguir" == "n" ];then
   echo "Saliendo..."
   exit 1
 fi
fi

#localizamos el deb (ruta relativa o absoluta lo sabemos porque
# $fichero comience o no por /)
if [ "`echo $fichero | cut -c1`" == "/" ];then
fichero=$fichero
else
fichero=`pwd`/$fichero
echo "la ruta completa es: $fichero"
fi

#descomprimir cada cosa en su sitio
cd /tmp/
rm -rf paquete 2>/dev/null
mkdir paquete
cd /tmp/paquete
ar x $fichero >/dev/null
mkdir tmp
cd tmp
tar xzpf ../data.tar.gz
mkdir DEBIAN
cd DEBIAN
tar xzpf ../../control.tar.gz
echo "Desempaquetado."
exit 0
}

empaqueta() {
cd /tmp/paquete/tmp/
dpkg --build . ..
cd ..
ls *.deb
echo "Aquí tienes tu .deb"
}

if [ "$#" == "0" ]; then
ayuda
fi

if [ "$modificador" == "--help" ]; then
ayuda
fi

if [ "$modificador" == "--desempaqueta" ] ; then
desempaqueta
fi

if [ "$modificador" == "-d" ] ; then
desempaqueta
fi

if [ "$modificador" == "--empaqueta" ]; then
empaqueta
fi

if [ "$modificador" == "-e" ]; then
empaqueta
fi

#si no hemos deficnido destino ponemos uno por defecto
if [ "$destino" == "" ]; then
destino=$mirror_extra
fi

if [ "$fichero" == "-a" ]; then
   echo "Copiando paquete en $destino ..."
   cp *.deb $destino
   echo "Actualizando mirror..."
   cd $destino
   dpkg-scanpackages ./ /dev/null | gzip -9c > ./Packages.gz
   if [ ! -f "$destino/Sources.gz" ]; then
        #creamos el Sources.gz si no existe
        touch Sources
        gzip Sources
   fi
   echo ""
   echo "HECHO"
fi

--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que est� limpio.

_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l

Responder a