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