Vérifiez s'il existe plusieurs dépendances avant d'installer un paquet dans Debian ou Ubuntu

8

Je sais déjà que je peux vérifier si plusieurs dépendances requises pour installer un paquet dans Debian ou Ubuntu existent dans mes référentiels en exécutant la commande suivante:

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

Cette commande m'indique également si j'ai chaque paquet actuellement installé ou non.

Ma question est de savoir comment vérifier rapidement s'il existe plusieurs packages de dépendances dans une version prise en charge de Debian ou Ubuntu que je n'ai pas actuellement installée. Parce que je n'ai pas ce système d'exploitation actuellement installé, je ne peux pas vérifier si les packages de dépendance existent localement et hors ligne, mais je veux vérifier si les packages de dépendance requis existent dans les référentiels par défaut du terminal.

Une utilisation possible de ces informations consiste à vérifier si une application installée dans Ubuntu peut également être installée dans la dernière version d'Ubuntu avant d'installer la dernière version d'Ubuntu ou de mettre à niveau le système d'exploitation existant vers la dernière version.

Karel
la source

Réponses:

10

L'outil idéal pour cela est rmadison, qui est un simple script Perl avec peu de dépendances (le URImodule et wgetou curl), donc il peut fonctionner à peu près partout. Il interroge les services Madison hébergés par Debian et Ubuntu pour déterminer la disponibilité des packages:

rmadison gcc-7

vous indique quelles versions de GCC 7 sont disponibles dans les différentes suites Debian,

rmadison -u ubuntu gcc-7

fait de même pour Ubuntu.

Vous pouvez limiter la sortie à une version spécifique:

rmadison -u ubuntu -s bionic gcc-7
Stephen Kitt
la source
@karel remarque que le paramètre suivant -un'est pas un nom de package, mais un nom de distribution (ou probablement de repo)
GnP
Vous avez raison, il manquait ubuntuet cela fonctionne sur mon fichier d'exemple. En fait, cela fonctionne mieux que mon script, car il renvoie également des résultats pour les packages pour une version précise de fin de vie.
karel
3

rmadison peut rechercher des packages Debian et Ubuntu en même temps, et il recherche également des packages dans les versions Ubuntu End Of Life (12.04) et non publiées (18.10). Ce sont d'excellentes fonctionnalités, mais rmadison ne peut pas effectuer de recherche partielle de mots clés sur mon ordinateur. Parfois, je ne me souviens plus du nom du package que je recherche. Je ne m'en souviens que partiellement, et les instructions suivantes fonctionnent également dans cette situation. Sinon, utilisez rmadison qui peut être installé par la commandesudo apt-get install devscriptsdans Ubuntu et Debian.

  1. Créez un script shell pour demander si les multiples packages existent nommés Open-multiple-URLs-in-Firefox.sh. Le script contient le code suivant:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
  2. Rendez le script exécutable.

    chmod +x Open-multiple-URLs-in-Firefox.sh
  3. Créez un fichier nommé packages.txt qui contient les noms de tous les packages de dépendance requis, chaque package sur une ligne distincte. Enregistrez packages.txt dans le même répertoire que Open-multiple-URLs-in-Firefox.sh.

  4. Exécutez le script.

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

La page Web contenant des informations sur chaque package de dépendance requis s'ouvrira dans un onglet distinct dans Firefox.

Afin de rechercher plusieurs paquets dans Debian, remplacez https://packages.ubuntu.com/dans le script shell parhttps://packages.debian.org/search?keywords=


Cette commande est une alternative plus simple au script shell ci-dessus à utiliser lorsque vous recherchez uniquement 1 ou 2 packages.

firefox --new-tab https://packages.ubuntu.com/first-package https://packages.ubuntu.com/next-package https://packages.ubuntu.com/last-package
Karel
la source