Für ein reibungsloses Upgrade von 10.04 auf 10.10 möchte ich alle Pakete entfernen, die sich nicht in den Standard-Repositorys befinden (z. B. Chrom-PPA- und Drittanbieter-Repositorys). Was ist der einfachste Weg (vorzugsweise CLI), um diese Pakete zu finden und zu entfernen?
Bearbeiten: Diese Frage ist nicht auf PPAs beschränkt. Ich habe auch ein x2go-Repository, daher suche ich nach einem generischen Befehl zum Entfernen von Paketen, die zu einem bestimmten Repository gehören. Für PPAs hat die Frage, wie PPAs entfernt werden können, gute Antworten.
package-management
Lekensteyn
quelle
quelle
Antworten:
Dieses Skript kann alle Pakete eines bestimmten Servers / Zweigs auflisten (wobei die beiden deklarierten Variablen geändert werden):
Wenn Sie unabhängig von der Verzweigung alle Pakete auflisten müssen, die nicht von einem bestimmten Server stammen, ersetzen Sie die vorletzte Zeile durch:
quelle
$2 == server && $3 == branch
durch$2 != server
wird meine Frage beantwortet. Bitte geben Sie dies in Ihre Antwort ein :) (diebranch=
Zeile kann entfernt werden) Hinweis: Es wird davon ausgegangen, dass alle Pakete von einem einzigen Repository-Server stammen.libvpx0
Paket bestand sowohl im Hauptrepo als auch in der Chrom-Tageszeitung PPA. Nach dem Entfernen der Repositories aus/etc/apt/sources.list.d
, hatte ich noch ein übrig gebliebenen Paket:libvpx0
. I „repariert“ dies wie folgt: Entfernen Sie die Bibliothek mit dpkg, ignoriert Abhängigkeiten:sudo dpkg --ignore-depends=libvpx0 --remove libvpx0
. Als nächstes installieren Sie es wieder aus dem Haupt Repo:sudo apt-get install libvpx0
.sudo apt-get install libvpx0=$version_string
, vorausgesetzt, die beiden verfügbaren Pakete haben unterschiedliche Versionszeichenfolgen.apt-cache policy $(dpkg -l | awk '/^ii/{print $2}') > policy.txt; awk '!/^ /{pkg=$1}check{print pkg, $2;check=0}/\*\*\*/{check=1} ' policy.txt | grep -v archive.ubuntu
ist ein guter Anfang (fügen Sie weitere hinzugrep -v
, um bestimmte PPAs auszuschließen). Paketversionen, die in keinem Repo bekannt sind, werden als angezeigt/var/lib/dpkg/status
.Schauen Sie sich ppa-purge an .
Verwendung:
Der Hostserver ist standardmäßig auf
ppa.launchpad.net
.Hier ist der Link zur Manpage für den
ppa-purge
Befehl als Referenz.quelle
Überwindung
aptitude
des Multiarch Bug fürppa-purge
Normalerweise als Vadim Rutkovsky und Takkat haben erklärt , läuft
ppa-purge
mit Default - Syntax ist ein effektiver Weg , um alle Pakete von einem PPA bereitgestellt zu entfernen, richtig , wann immer möglich in andere konfigurierten Software Quellen zur Verfügung gestellt , sie zu Versionen Herabstufung.Wie Takkat hervorgehoben hat, verhindert der Fehler 831768 jedoch, dass Multiarch- Pakete (wie 32-Bit-Pakete, die auf 64-Bit-Systemen installiert sind)
ppa-purge
ordnungsgemäß entfernt werden können. Dies liegt daran , nicht in Konflikt Abhängigkeiten in multiarch Paketen verarbeiten (das ist , was der Fehler über ist) und das Standardverhalten verwenden Pakete degradieren.aptitude
ppa-purge
aptitude
Akzeptiert zum Glück
ppa-purge
das-i
Flag, das es bevorzugtapt-get
,aptitude
als Backend. Wie im Fehlerbericht dokumentiert, ist die Verwendungapt-get
eine effektive Alternative zum manuellen Aufrufen. Daher sollte dasaptitude
Ausführenppa-purge
mit dem-i
Flag eine effektive Umgehung für das Entfernen / Downgraden aller von einer PPA bereitgestellten Pakete sein, einschließlich Multiarch-Paketen .Wie es geht
Hier ist die Syntax:
Wie gewohnt (wie wenn die
-i
Flagge nicht benutzt wird):ppaowner
wird durch den Besitzer des PPA ersetzt./ppaname
es ist optional. Wenn vorhanden,ppaname
wird durch den Namen der PPA ersetzt. Wenn nicht, ist der Standardwertppa
.Zum Beispiel , nehme ich das hatte PPA für instabil von qBittorrent baut installiert, und ich wollte es vollständig entfernen, automatisch qBittorrent Herabstufung, was auch immer Version durch meine andere Software - Quellen zur Verfügung steht mit
apt-get
hinter den Kulissen stattaptitude
. Dann würde ich laufen:Wo es dokumentiert ist
Aus irgendeinem Grund sind einige nützliche Optionen für
ppa-purge
nicht in der Handbuchseite dokumentiert , einschließlich-i
. Sie können jedoch Informationen dazu erhalten, indem Sie Folgendes ausführenppa-purge -h
(oder einfachppa-purge
ohne Argumente):"Umgekehrte Präferenz von apt-get upon aptitude" ist ein bisschen kryptisch. Mit Blick auf den relevanten Teil des Quellcodes (
ppa-purge
nur ein Shell - Skript, nachdem alle), können wir , dass dies bedeutet , dass das Standardverhalten zu bevorzugen istaptitude
zuapt-get
, und die-i
Flagge kehrt diese Präferenz.quelle
ppa-purge
wird nicht entfernen oder Herabstufung von Paketen, die nicht mehr durch die PPA bereitgestellt werden „gespült“ . Möglicherweise möchten Sie jedoch eine separate Frage dazu stellen, um eine aussagekräftigere oder besser dokumentierte Antwort zu erhalten.ppa:username/path
. Außerdem muss die PPA AKTIVIERT sein, bevor Sie versuchen, sie zu löschen, obwohl das Skript sofort nach dem Aktualisieren der Liste der zu entfernenden Pakete deaktiviert wird, werden bereits deaktivierte PPAs nicht "gefunden".aptitude search ~o
, verwaiste Pakete ohne Installationsquelle zu finden, wenn Sie etwas löschen müssen, das von einer PPA entfernt wurde (oder als einmalige Installation über installiert wurdedpkg -i
).Hier ist GUI Möglichkeiten, dies zu tun. Hoffe, es würde für diejenigen helfen, die CLI nicht bevorzugen. Die Schritte sind einfach und leicht zu befolgen.
Öffnen Sie den Synaptic Package Manager . Wenn nicht installiert, installieren Sie es wie folgt:
Klicken Sie im geöffneten Zustand links unten auf die Schaltfläche Origin . Es werden alle Repositorys oben links aufgelistet. Wählen Sie das bestimmte Repository aus, für das Pakete entfernt werden sollen. Es werden alle Pakete in diesem Repository aufgelistet. Klicken Sie auf das erste Feld i, e S oder Installierte Version , um zuerst die installierten Pakete anzuzeigen.
Wählen Sie nun alle zu entfernenden Pakete aus.
Tipps zum Markieren zum Entfernen:
Erstes Paket Shiftauswählen, dann die Taste gedrückt halten und erneut das letzte Paket auswählen, um alle auszuwählen. Klicken Sie dann mit der rechten Maustaste auf das quadratische Kästchen und wählen Sie die Option zum Entfernen oder zum vollständigen Entfernen .
oder Wählen Sie ein Paket aus und drücken Sie Ctrl+ A, um alle auszuwählen. Klicken Sie dann mit der rechten Maustaste auf das quadratische Kästchen und wählen Sie die Markierung zum Entfernen oder die Markierung zum vollständigen Entfernen.
Das ist es. Es wird ohne Probleme entfernt. Ich habe auch das Bild angehängt, um es klarer zu machen. Hoffe es würde helfen. :)
quelle
Um sie zumindest zu finden, deaktivieren Sie zunächst die PPAs und führen Sie sie aus
apt-get update
. Dann installierenapt-show-versions
. Running zeigtapt-show-versions | grep 'No available'
Ihnen dann eine Liste aller installierten Pakete an, die in Ihren konfigurierten Repositorys nicht gefunden werden können. Mit etwas Befehlszeilenmagie können Sie wahrscheinlich nur die Paketnamen entfernen und an folgende Adresse übergebenapt-get remove
:Beachten Sie, dass dies durch die zurückgegebene Liste geht
apt-show-versions
und diese nacheinander entfernt. Je nachdem, was gefunden wird, kann dies zu einer Deinstallation führen, die aufgrund von Abhängigkeiten nicht beabsichtigt ist. Überprüfen Sie dies daher zuerst.quelle
libvpx0
Paket der Chrom-Tageszeitung PPA. @enzotibs Antwort zeigte dieses Paket.apt-show-versions
als Nicht-Root-Benutzer ausgeführt werden, müssensudo apt-show-versions -i
Sie den Cache aktualisieren und Änderungen von neu entfernten Repositorys / PPAs anzeigen (andernfalls erfolgt die Aktualisierung nur über einen cron.daily-Job)Ich fand die Verwendung von ppa-purge schwierig.
Öffnen Sie den Synaptic Package Manager unter System und wählen Sie Einstellungen, Repositorys.
Entfernen Sie diejenigen, die Sie nicht wollen.
Getan!
quelle