Compruebe si existen varias dependencias antes de instalar un paquete en Debian o Ubuntu

8

Ya sé que puedo verificar si existen varias dependencias necesarias para instalar un paquete en Debian o Ubuntu en mis repositorios ejecutando el siguiente comando:

apt policy first-package second-package ... last-package  

Este comando también me dice si tengo cada paquete actualmente instalado o no.

Mi pregunta es cómo verificar rápidamente si existen varios paquetes de dependencia en una versión compatible de Debian o Ubuntu que actualmente no tengo instalada. Debido a que no tengo ese sistema operativo instalado actualmente, no puedo verificar si los paquetes de dependencia existen localmente y sin conexión, pero quiero verificar si los paquetes de dependencia necesarios existen en los repositorios predeterminados del terminal.

Un posible uso de esta información es verificar si una aplicación que está instalada en Ubuntu también se puede instalar en la última versión de Ubuntu antes de instalar la última versión de Ubuntu o actualizar el sistema operativo existente a la última versión.

karel
fuente

Respuestas:

10

La herramienta ideal para esto es rmadison, que es un script de Perl simple con pocas dependencias (el URImódulo wgeto curl), por lo que puede ejecutarse prácticamente en todas partes. Interroga los servicios de Madison alojados por Debian y Ubuntu para determinar la disponibilidad de paquetes:

rmadison gcc-7

le informa qué versiones de GCC 7 están disponibles en los distintos conjuntos de Debian,

rmadison -u ubuntu gcc-7

hace lo mismo para Ubuntu.

Puede restringir la salida a una versión específica:

rmadison -u ubuntu -s bionic gcc-7
Stephen Kitt
fuente
@karel nota que el parámetro posterior -uno es un nombre de paquete, sino un nombre de distribución (o probablemente repositorio)
GnP
Tienes razón, faltaba ubuntuy funciona en mi archivo de ejemplo. De hecho, funciona mejor que mi script porque también devuelve resultados para paquetes precisos, que es una versión final de la vida.
karel
3

rmadison puede buscar paquetes Debian y Ubuntu al mismo tiempo, y también busca paquetes tanto en End Of Life (12.04) como en versiones inéditas (18.10) de Ubuntu. Estas son excelentes características, pero rmadison no puede hacer búsquedas parciales de palabras clave en mi computadora. A veces no puedo recordar el nombre completo del paquete que estoy buscando. Solo puedo recordar una parte, y las siguientes instrucciones también funcionan en esta situación. De lo contrario, use rmadison, que puede instalar el comandosudo apt-get install devscriptsen Ubuntu y Debian.

  1. Cree un script de shell para consultar si existen varios paquetes llamados Open-multiple-URLs-in-Firefox.sh. El script contiene el siguiente código:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
    
  2. Haga que el script sea ejecutable.

    chmod +x Open-multiple-URLs-in-Firefox.sh
  3. Cree un archivo llamado packages.txt que contenga los nombres de todos los paquetes de dependencia requeridos, cada paquete en una línea separada. Guarde los paquetes.txt en el mismo directorio que Open-multiple-URLs-in-Firefox.sh.

  4. Ejecute el script

    ./Open-multiple-URLs-in-Firefox.sh  

La página web que tiene información sobre cada paquete de dependencia requerido se abrirá en una pestaña separada en Firefox.

Para buscar múltiples paquetes en Debian, reemplace https://packages.ubuntu.com/en el script de shell conhttps://packages.debian.org/search?keywords=


Este comando es una alternativa más simple al script de shell anterior para usar cuando solo está buscando 1 o 2 paquetes.

firefox --new-tab https://packages.ubuntu.com/first-package https://packages.ubuntu.com/next-package https://packages.ubuntu.com/last-package
karel
fuente