Überprüfen Sie, ob mehrere Abhängigkeiten vorhanden sind, bevor Sie ein Paket in Debian oder Ubuntu installieren

8

Ich weiß bereits, dass ich überprüfen kann, ob in meinen Repositorys mehrere Abhängigkeiten vorhanden sind, die zum Installieren eines Pakets in Debian oder Ubuntu erforderlich sind, indem ich den folgenden Befehl ausführe:

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

Dieser Befehl sagt mir auch, ob ich jedes Paket aktuell installiert habe oder nicht.

Meine Frage ist, wie ich schnell überprüfen kann, ob in einer unterstützten Version von Debian oder Ubuntu mehrere Abhängigkeitspakete vorhanden sind, die ich derzeit nicht installiert habe. Da dieses Betriebssystem derzeit nicht installiert ist, kann ich nicht überprüfen, ob die Abhängigkeitspakete lokal und offline vorhanden sind. Ich möchte jedoch überprüfen, ob die erforderlichen Abhängigkeitspakete in den Standard-Repositorys des Terminals vorhanden sind.

Eine mögliche Verwendung dieser Informationen besteht darin, zu überprüfen, ob eine in Ubuntu installierte Anwendung auch in der neuesten Version von Ubuntu installiert werden kann, bevor die neueste Version von Ubuntu installiert oder das vorhandene Betriebssystem auf die neueste Version aktualisiert wird.

Karel
quelle

Antworten:

10

Das ideale Werkzeug dafür ist rmadisonein einfaches Perl-Skript mit wenigen Abhängigkeiten (das URIModul und wgetoder curl), sodass es praktisch überall ausgeführt werden kann. Es fragt die von Debian und Ubuntu gehosteten Madison-Dienste ab, um die Verfügbarkeit von Paketen zu bestimmen:

rmadison gcc-7

zeigt Ihnen, welche Versionen von GCC 7 in den verschiedenen Debian-Suiten verfügbar sind.

rmadison -u ubuntu gcc-7

macht das gleiche für Ubuntu.

Sie können die Ausgabe auf eine bestimmte Version beschränken:

rmadison -u ubuntu -s bionic gcc-7
Stephen Kitt
quelle
@ Karel beachten Sie, dass der Parameter danach -ukein Paketname ist, sondern ein Distributionsname (oder wahrscheinlich ein Repo-Name)
GnP
Sie haben Recht, es war das Fehlende ubuntuund es funktioniert auf meiner Beispieldatei. Tatsächlich funktioniert es besser als mein Skript, da es auch Ergebnisse für Pakete zurückgibt, um genau zu sein, was ein Ende der Lebensdauer ist.
Karel
3

rmadison kann gleichzeitig nach Debian- und Ubuntu-Paketen suchen und sucht auch nach Paketen in End Of Life (12.04) und unveröffentlichten (18.10) Ubuntu-Versionen. Dies sind großartige Funktionen, aber rmadison kann auf meinem Computer keine teilweise Suche nach Schlüsselwörtern durchführen. Manchmal kann ich mich nicht an den gesamten Paketnamen erinnern, nach dem ich suche. Ich kann mich nur an einen Teil erinnern, und die folgenden Anweisungen funktionieren auch in dieser Situation. Verwenden Sie andernfalls rmadison, das mit dem Befehlsudo apt-get install devscriptsin Ubuntu und Debianinstalliert werden kann.

  1. Erstellen Sie ein Shell-Skript, um abzufragen, ob mehrere Pakete mit dem Namen Open-multiple-URLs-in-Firefox.sh vorhanden sind. Das Skript enthält den folgenden Code:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
  2. Machen Sie das Skript ausführbar.

    chmod +x Open-multiple-URLs-in-Firefox.sh
  3. Erstellen Sie eine Datei mit dem Namen packages.txt, die die Namen aller erforderlichen Abhängigkeitspakete enthält, wobei jedes Paket in einer separaten Zeile steht. Speichern Sie die Datei packages.txt im selben Verzeichnis wie Open-multiple-URLs-in-Firefox.sh.

  4. Führen Sie das Skript aus.

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

Die Webseite mit Informationen zu jedem erforderlichen Abhängigkeitspaket wird in Firefox auf einer separaten Registerkarte geöffnet.

Um in Debian nach mehreren Paketen zu suchen, ersetzen Sie https://packages.ubuntu.com/im Shell-Skript durchhttps://packages.debian.org/search?keywords=


Dieser Befehl ist eine einfachere Alternative zum obigen Shell-Skript, wenn Sie nur nach 1 oder 2 Paketen suchen.

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