Ich versuche herauszufinden, wie ich eine Liste der Pakete erhalten kann, die in den von mir aktivierten Repositorys nicht mehr verfügbar sind. Diese Workstation hat einige Versionen von Ubuntu durchlaufen und es wurden viele Repositorys von Drittanbietern hinzugefügt und entfernt. Ich möchte eine Liste der Software erhalten, die ich aus diesen entfernten Repositorys habe, damit ich sie bereinigen oder die entsprechenden Repositorys wieder hinzufügen kann.
package-management
Sean
quelle
quelle
apt-show-versions | grep "newer than version in archive"
So rufen Sie eine Liste der Apps ab, die sich nicht in einem registrierten Repository oder PPA befinden:
Das sollte so aussehen:
Bei mir funktionierte dies und zeigte drei Apps, die ich mit DEB-Paketen installiert hatte und die in einem Repo oder PPA nicht verfügbar waren.
Denken Sie jedoch daran, dass es unmöglich ist, nach allen Programmen zu suchen, nur nach denen, die durchlaufen wurden
dpkg
. Beispielsweise werden einige Apps installiert, indem sie einfach in die richtigen Ordner extrahiert werden, oder andere verwenden einen eigenständigen Installationsordner oder ein eigenständiges Skript. Am besten führen Sie selbst eine Liste der Apps, die Sie mit einer anderen Methode als APT installiert haben.quelle
dpkg
installierten Pakete. Eine Ausnahme. Es listet aufskype-bin
, wohingegenapt-cache policy skype-bin
deutlich das Canonical Partner Repo angezeigt wird. Ich bin nicht sicher, was los ist. Multiarch-Problem? Noch +1 fürapt-show-versions
!Wenn Sie aptitude installiert haben, verwenden Sie
oder seine Kurzform
Hier ist es eine Beispielausgabe
Das erste Zeichen jeder Zeile gibt den aktuellen Status des Pakets an. Die häufigsten Staaten sind:
Das zweite Zeichen gibt die gespeicherte Aktion an, die für das Paket ausgeführt werden soll, sofern vorhanden. Andernfalls wird ein Leerzeichen angezeigt. Die häufigsten Aktionen sind:
Wenn das dritte Zeichen A ist, wurde das Paket automatisch installiert.
Eine vollständige Liste der möglichen Status- und Aktionsflags finden Sie im Abschnitt Zugreifen auf Paketinformationen im Aptitude-Referenzhandbuch.
quelle
aptitude search ?obsolete
kann in Bash arbeiten, aber Sie sollten verwendenaptitude search '?obsolete'
Sie können den folgenden Bash-Einzeiler verwenden:
Hierfür müssen keine zusätzlichen Pakete installiert werden, und dies ist relativ schnell. Dies findet auch teilweise installierte Pakete (findet jedoch nicht diejenigen, die nur noch Konfigurationsdateien enthalten; diese können jedoch leicht geändert werden). Hinweis: Hierbei ist es egal, um welche Architektur es sich bei den Paketen handelt.
Noch schneller geht es mit modernem apt:
Eine weitere Option ist das Ausführen
und lesen Sie die veralteten Paketnamen im Abschnitt "Nicht mehr herunterladbar:".
quelle
apt
darum gebeten, dass die Liste hier einfach zu bekommen ist . Sie können markieren, dass der Fehler Sie betrifft.Weitere Informationen zu untersuchen.
... ubuntu-support-status und apt-mark müssen möglicherweise installiert werden.
quelle
sudo
mit zu verwendenapt-mark showmanual
.ubuntu-support-status
listet die Anzahl der veralteten Pakete auf, jedoch nicht die Paketnamen.ubuntu-support-status --help
Es mag einen saubereren Weg geben, aber Sie können es von oben tun
Bereinigen Sie die ersten Zeilen der
installed
Datei: Sie enthält Überschriften.Bonus, wenn jemand meine Syntaxhervorhebung korrigieren kann ...
quelle
dpkg -l
, um eine Liste der installierten Pakete zu erhalten, sollten Sie die Ergebnisse auf Zeilen mit 'i' in der zweiten Spalte beschränken, da dpkg auch Pakete auflistet, die nicht installiert (möglicherweise entfernt, aber nicht gelöscht) sind. . Wenn Sie beispielsweise Ihren ersten Befehl auf "dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
it" ändern, wird eine Liste von Paketen zurückgegeben, die NICHT installiert sind. (aber es war einmal)apt-cache search someinstalledpackage
wird etwas zurückgegeben, auch wenn das Paket von einem Repo nicht verfügbar ist, also glaube ich nicht, dass dies überhaupt funktionieren wird.dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
druckt auch einige Kopfzeilen.apt-cache search
für jedes Paket separat ausgeführt wird.Wie bereits erwähnt, ist apt-get search keine gute Methode, um zu überprüfen, ob ein Paket noch verfügbar ist. Zusätzlich habe ich alles nur einer Zeile hinzugefügt:
quelle
grep '^i'
man dpkg-query
für weitere Informationen.apt-cache show
does ist auch nicht gut, um zu überprüfen, ob das Paket verfügbar ist. Wenn Sie das jeweilige Repository deaktivieren und kein anderes aktiviertes Repository über dieses verfügt, wird das Paket weiterhin angezeigt.