#!/bin/bash
# Compruebo si se han proporcionado uno o más nombres de paquetes
if [ $# -lt 1 ]; then
echo "Uso: $0 <nombre del paquete1> [<nombre del paquete2> ...]"
exit 1
fi
# Itero sobre cada nombre de paquete proporcionado
for PACKAGE_NAME in "$@"; do
# Busco el bloque correspondiente al paquete en el archivo de estado
BLOCK=$(awk -v pkg="$PACKAGE_NAME" '
BEGIN { RS=""; FS="\n" }
$1 ~ "Package: " pkg { print; found=1 }
found && $1 ~ /^Package:/ { exit }
' /var/lib/dpkg/status)
# Compruebo si se encontró el bloque
if [ -z "$BLOCK" ]; then
echo "No se encontró información para el paquete: $PACKAGE_NAME"
continue
fi
# Extraigo la versión del bloque
VERSION=$(echo "$BLOCK" | grep -m 1 '^Version: ' | cut -d ' ' -f 2)
# Defino el nombre del archivo .deb y el directorio de salida
OUTPUT_DIR="./${PACKAGE_NAME}.${VERSION}"
DEB_FILE="${PACKAGE_NAME}.${VERSION}.deb"
echo --------------- $DEB_FILE
# Elimino el directorio de salida y el archivo .deb si existen
rm -rf "$OUTPUT_DIR" "$DEB_FILE" 2>/dev/null
# Creo el directorio con el formato <nombre del paquete>.<versión>
mkdir -p "$OUTPUT_DIR/DEBIAN"
# Guardo la información en un archivo control, eliminando la línea "Status: " y comentadas
echo "$BLOCK" | grep -vE '^Status: |^#Depends:|^#Pre-Depends:' > "$OUTPUT_DIR/DEBIAN/control"
# Incluyo archivos relacionados en el directorio DEBIAN, sin el nombre del paquete
find /var/lib/dpkg/info/ -name "$PACKAGE_NAME.*" ! -name "$PACKAGE_NAME.list" -exec sh -c '
for file; do
base=$(basename "$file")
new_name=$(echo $base | sed 's/${PACKAGE_NAME}\.//g') # Elimino el prefijo del nombre del paquete
cp "$file" "'"$OUTPUT_DIR"'/DEBIAN/$new_name"
done
' sh {} +
# Leo el archivo .list y copio los archivos indicados a la carpeta de salida
LIST_FILE="/var/lib/dpkg/info/$PACKAGE_NAME.list"
if [ -f "$LIST_FILE" ]; then
while read -r line; do
# Verifica si la línea contiene .git
if [[ "$line" == *".git"* ]]; then
continue # Salta al siguiente ciclo si contiene .git
fi
# Creo el directorio si no existe
mkdir -p "$OUTPUT_DIR$(dirname "$line")"
# Copio los archivos listados
cp --preserve=mode,timestamps "$line" "$OUTPUT_DIR$line" 2>&1 |grep -v "omitting directory" | cut -d \' -f3
done < "$LIST_FILE"
else
echo "No se encontró el archivo de lista para el paquete: $PACKAGE_NAME"
fi
# Genero el paquete .deb
dpkg -b "$OUTPUT_DIR" "$DEB_FILE" >/dev/null
done
Si queremos comparar dos versiones
diff google-chrome-stable.131.0.6778.69-1 google-chrome-stable.131.0.6778.204-1 -r -q
Files google-chrome-stable.131.0.6778.69-1/DEBIAN/control and google-chrome-stable.131.0.6778.204-1/DEBIAN/control differ
Files google-chrome-stable.131.0.6778.69-1/DEBIAN/md5sums and google-chrome-stable.131.0.6778.204-1/DEBIAN/md5sums differ
Files google-chrome-stable.131.0.6778.69-1/DEBIAN/postinst and google-chrome-stable.131.0.6778.204-1/DEBIAN/postinst differ
Files google-chrome-stable.131.0.6778.69-1/DEBIAN/prerm and google-chrome-stable.131.0.6778.204-1/DEBIAN/prerm differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/chrome and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/chrome differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/chrome_crashpad_handler and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/chrome_crashpad_handler differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/chrome-management-service and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/chrome-management-service differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/chrome-sandbox and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/chrome-sandbox differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/icudtl.dat and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/icudtl.dat differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/libEGL.so and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/libEGL.so differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/libGLESv2.so and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/libGLESv2.so differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/liboptimization_guide_internal.so and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/liboptimization_guide_internal.so differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/libvk_swiftshader.so and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/libvk_swiftshader.so differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/libvulkan.so.1 and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/libvulkan.so.1 differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/af.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/af.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/am.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/am.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ar.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ar.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/bg.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/bg.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/bn.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/bn.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ca.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ca.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/cs.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/cs.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/da.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/da.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/de.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/de.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/el.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/el.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/en-GB.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/en-GB.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/en-US.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/en-US.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/es-419.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/es-419.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/es.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/es.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/et.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/et.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/fa.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/fa.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/fil.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/fil.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/fi.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/fi.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/fr.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/fr.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/gu.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/gu.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/he.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/he.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/hi.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/hi.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/hr.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/hr.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/hu.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/hu.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/id.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/id.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/it.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/it.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ja.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ja.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/kn.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/kn.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ko.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ko.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/lt.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/lt.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/lv.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/lv.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ml.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ml.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/mr.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/mr.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ms.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ms.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/nb.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/nb.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/nl.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/nl.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/pl.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/pl.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/pt-BR.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/pt-BR.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/pt-PT.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/pt-PT.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ro.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ro.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ru.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ru.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/sk.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/sk.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/sl.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/sl.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/sr.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/sr.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/sv.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/sv.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/sw.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/sw.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ta.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ta.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/te.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/te.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/th.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/th.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/tr.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/tr.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/uk.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/uk.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/ur.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/ur.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/vi.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/vi.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/zh-CN.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/zh-CN.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/locales/zh-TW.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/locales/zh-TW.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/resources.pak and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/resources.pak differ
Files google-chrome-stable.131.0.6778.69-1/opt/google/chrome/v8_context_snapshot.bin and google-chrome-stable.131.0.6778.204-1/opt/google/chrome/v8_context_snapshot.bin differ
Files google-chrome-stable.131.0.6778.69-1/usr/share/applications/google-chrome.desktop and google-chrome-stable.131.0.6778.204-1/usr/share/applications/google-chrome.desktop differ
Files google-chrome-stable.131.0.6778.69-1/usr/share/doc/google-chrome-stable/changelog.gz and google-chrome-stable.131.0.6778.204-1/usr/share/doc/google-chrome-stable/changelog.gz differ