Wie finde ich installierte Pakete ohne Installationskandidaten?

7

Ich möchte eine Liste der installierten Pakete abrufen, die keinen Installationskandidaten haben (z. B. weil ich einen passenden Quelldateieintrag entfernt habe). Wie würde ich das auf Debian-basierten Systemen machen?

htorque
quelle
Sie könnten verwenden apt-show-versionsund grep für No available version in archive.
Faheem Mitha

Antworten:

8

Suchen Sie mit Aptitude nach dem ?obsolete Muster , möglicherweise mit einem benutzerdefinierten Anzeigeformat .

aptitude -F '%p' search '?obsolete'
Gilles 'SO - hör auf böse zu sein'
quelle
Ich wusste, ich hätte anfangen sollen, Befehlszeilen-Paketmanagement mit aptitude anstelle von apt zu lernen. Danke, unkompliziert und schneller als die andere Antwort. :)
htorque
2

Dieser wurde aktualisiert:

for package in $(dpkg -l | awk '/ii/{print $2}'); do
     if ! grep -xq "Package: $package" /var/lib/apt/lists/*Packages; then
         echo $package
     fi
done

Verwenden der apt-Cache-Richtlinie:

for package in $(dpkg -l | awk '/ii/{print $2}'); do
    if ! apt-cache policy $package | grep -q '[0-9] http://'; then
        echo $package
    fi
done
Teresa e Junior
quelle
Leider scheint dies nicht wichtig zu sein: i386-Pakete auf Systemen mit Multiarch-Unterstützung. Das Parsen der Ausgabe von apt-cache policy <package>würde funktionieren, aber das wäre ziemlich langsam, wie ich mir vorstellen kann.
Htorque
Geben Sie mir ein Beispiel dafür, wie die Ausgabe apt-cache policyauf Ihrem Multiarch-System aussehen würde.
Teresa e Junior
Das Beispiel für ein solches Paket ohne Installationskandidaten ...
Teresa e Junior
paste.ubuntu.com/811658 - aber ich habe eine andere Idee: versuchen, apt-get download -salle installierten Pakete.
Htorque
Ihr apt-cache policyhilft nicht und apt-get downloadexistiert nicht in Debian.
Teresa e Junior
0

Aktualisieren Sie einfach Ihre Pakete mit

sudo apt-get install update

In den meisten Fällen werden die Probleme dadurch behoben. Wenn nicht erfüllte Abhängigkeitsprobleme auftreten, verwenden Sie diese

sudo apt-get -f install
Jezeel Muhammed
quelle