#!/bin/bash # # Script para descargar un paquete y todas sus dependencias # Le pasamos como parámentro el nombre de un paquete y lo descargará # junto con todas las dependencias de primer y segundo nivel # creando un directorio con el nombre del paquete # Esteban M. Navas Martín # Fecha de creación: 12/12/2015 # Fecha de última modificación: 25/10/2023 if [ $# -eq 0 ]; then echo "Debe especificar el paquete a descargar" echo "Sintaxix: $0 package" exit 1 fi paquete_principal=$1 apt-get update && apt-cache show $paquete_principal > /dev/null 2>&1 if [ $? -eq 0 ]; then [ -d $paquete_principal ] && rm -r $paquete_principal mkdir $paquete_principal cd $paquete_principal # Descargamos el paquete solicitado LC_ALL=C apt-get download $paquete_principal # Descargamos las dependencias del paquete solicitado dependenciasn1=$(LC_ALL=C apt-cache depends -i $paquete_principal | grep Depends | grep -v PreDepends | sed -e 's/^ *.Depends://' -e '/<.*>/d' | uniq) LC_ALL=C apt-get download $dependenciasn1 # Descargamos las dependencias de las dependencias for dependencia in $dependenciasn1; do dependenciasn2=$(LC_ALL=C apt-cache depends -i $dependencia | grep Depends | grep -v PreDepends | sed -e 's/^ *.Depends://' -e '/<.*>/d' | uniq) LC_ALL=C apt-get download $dependenciasn2 done else echo "El paquete $paquete_principal no existe en los repositorios" fi