W celu sprawnego uaktualnienia z 10.04 do 10.10 chciałbym usunąć wszystkie pakiety, które nie znajdują się w domyślnych repozytoriach (np. PPA chromu i repozytoria stron trzecich). Jaki jest najłatwiejszy (najlepiej CLI) sposób na znalezienie i usunięcie tych pakietów?
Edycja: to pytanie nie jest ograniczone do PPA, mam również repozytorium x2go, więc szukam ogólnego polecenia do usunięcia pakietów należących do określonego repozytorium. W przypadku umów PPA pytanie W jaki sposób można usunąć umowy PPA, zawiera świetne odpowiedzi.
package-management
Lekensteyn
źródło
źródło
Odpowiedzi:
Ten skrypt może wyświetlać wszystkie pakiety z określonego serwera / gałęzi (modyfikując dwie deklarowane zmienne):
jeśli chcesz wyświetlić listę wszystkich pakietów, które nie pochodzą z określonego serwera, niezależnie od oddziału, zamień wiersz przedostatni na:
źródło
$2 == server && $3 == branch
przez$2 != server
moje pytanie jest odpowiedź. Proszę wpisać to w swojej odpowiedzi :) (branch=
wiersz można usunąć) Uwaga: zakłada się, że wszystkie pakiety pochodzą z jednego serwera repozytorium.libvpx0
Pakiet istniały zarówno głównego repo jak w PPA chromu dziennie. Po usunięciu z repozytoriów/etc/apt/sources.list.d
, miałem jeszcze pakiet lewy-over:libvpx0
. I „naprawione” to w następujący sposób: usunąć bibliotekę z dpkg, ignorując zależności:sudo dpkg --ignore-depends=libvpx0 --remove libvpx0
. Następnie zainstalować go ponownie z głównego repo:sudo apt-get install libvpx0
.sudo apt-get install libvpx0=$version_string
, zakładając, że dwa dostępne pakiety mają różne ciągi wersji.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
to dobry początek (dodaj więcej,grep -v
aby wykluczyć niektóre umowy PPA). Wersje pakietów, które nie są znane w żadnym repozytorium, są wyświetlane jako/var/lib/dpkg/status
.Sprawdź ppa-purge .
Stosowanie:
Serwer hosta domyślnie to
ppa.launchpad.net
.Oto link do strony podręcznika dla
ppa-purge
polecenia w celach informacyjnych.źródło
Pokonanie
aptitude
błędu Multiarch dlappa-purge
Normalnie, jak Vadim Rutkovsky i Takkat zostały wyjaśnione , bieganie
ppa-purge
z domyślną składni jest skutecznym sposobem na usunięcie wszystkich pakietów dostarczonych przez PPA, odpowiednio do ich obniżenia wersji przewidzianych w innych skonfigurowanych źródeł oprogramowania w miarę możliwości.Jednak, jak zauważył Takkat, błąd 831768 uniemożliwia
ppa-purge
poprawne działanie w celu usuwania pakietów wielodostępowych (takich jak pakiety 32-bitowe zainstalowane w systemach 64-bitowych). Wynika to z faktu, żeaptitude
nie jest w stanie poradzić sobie z konfliktowymi zależnościami w pakietach wielościennych (o to właśnie chodzi w błędzie), a domyślnym zachowaniemppa-purge
jest używanieaptitude
do obniżania pakietów.Na szczęście,
ppa-purge
przyjmuje-i
flagę, która powoduje, że woląapt-get
, abyaptitude
jako backend. Jak udokumentowano w raporcie o błędzie, używanieapt-get
jest skuteczną alternatywą dla ręcznego wywoływaniaaptitude
, więc uruchomienieppa-purge
z-i
flagą powinno być skutecznym obejściem dla usuwania / obniżania poziomu wszystkich pakietów udostępnianych przez PPA, w tym pakietów wielościennych .Jak to zrobić
Oto składnia:
Jak zwykle (tak samo, jak gdy
-i
flaga nie jest używana):ppaowner
zostaje zastąpiony właścicielem umowy PPA./ppaname
jest opcjonalny. Jeśli jest obecny,ppaname
zostaje zastąpiony nazwą PPA. Jeśli nie, domyślnie jest toppa
.Załóżmy na przykład , że mam zainstalowany PPA dla niestabilnych wersji qBittorrent i chciałem go całkowicie usunąć, automatycznie obniżając qBittorrent do dowolnej wersji dostępnej za pośrednictwem moich innych źródeł oprogramowania, używając
apt-get
zamiast scenaptitude
. Potem biegłbym:Gdzie jest to udokumentowane
Z jakiegoś powodu na stronie podręcznika
ppa-purge
nie udokumentowano kilku przydatnych opcji , w tym . Ale możesz uzyskać informacje na ich temat, uruchamiając (lub po prostu bez argumentów):-i
ppa-purge -h
ppa-purge
„Odwrotna preferencja apt-get upon aptitude” jest nieco tajemnicza. Patrząc na danym kawałku kodu źródłowego (
ppa-purge
jest tylko skrypt powłoki, mimo wszystko), widzimy, że to oznacza, że domyślnym zachowaniem jest woląaptitude
sięapt-get
, a-i
flaga odwraca tę preferencję.źródło
ppa-purge
będzie nie usuwać lub obniżenia wersji pakietów, które nie są już przewidziane przez PPA są „oczyszczone”. Możesz jednak zadać osobne pytanie na ten temat, aby uzyskać bardziej wiarygodną lub dobrze udokumentowaną odpowiedź.ppa:username/path
. Ponadto PPA musi być WŁĄCZONE przed próbą wyczyszczenia, mimo że skrypt natychmiast wyłącza się po aktualizacji listy pakietów do usunięcia, nie „znajdzie” już wyłączonych PPA.aptitude search ~o
znaleźć osierocone pakiety bez źródła instalacji, jeśli chcesz wyczyścić coś, co zostało usunięte z PPA (lub zostało zainstalowane jako jednorazowo przezdpkg -i
).Oto sposoby GUI, aby to zrobić. Mam nadzieję, że pomoże to tym, którzy nie preferują CLI. Kroki są proste i łatwe do wykonania.
Otwórz menedżera pakietów synaptycznych . Jeśli nie jest zainstalowany, zainstaluj go przez:
Po otwarciu kliknij przycisk Początek w lewym dolnym rogu. Wyświetli listę wszystkich repozytoriów w lewym górnym rogu. Wybierz konkretne repozytorium, dla którego pakiety mają zostać usunięte. Wyświetli listę wszystkich pakietów w tym repozytorium. Kliknij pierwsze pole i, e S lub pole Zainstalowana wersja, aby najpierw wyświetlić zainstalowane pakiety.
Teraz wybierz wszystkie pakiety do usunięcia.
Wskazówki do oznaczenia do usunięcia:
Wybierz pierwszy pakiet, a następnie przytrzymaj Shiftklawisz i ponownie wybierz ostatni pakiet, aby wybrać wszystkie. Następnie kliknij kwadratowe pole prawym przyciskiem myszy i wybierz znak do usunięcia lub znak do całkowitego usunięcia .
lub Wybierz dowolne pakiety i naciśnij Ctrl+, Aaby zaznaczyć wszystkie. Następnie kliknij prawym przyciskiem myszy kwadratowe pole i wybierz znak do usunięcia lub znak do całkowitego usunięcia.
to jest to! Usunie się bez problemu. Dołączyłem również obraz, aby był bardziej wyraźny. Mam nadzieję, że to pomoże. :)
źródło
Aby je przynajmniej znaleźć, zacznij od wyłączenia PPA i uruchom
apt-get update
. Następnie zainstalujapt-show-versions
. Uruchomienieapt-show-versions | grep 'No available'
spowoduje wyświetlenie listy wszystkich zainstalowanych pakietów, których nie można znaleźć w skonfigurowanych repozytoriach. Przy pomocy magii wiersza poleceń prawdopodobnie możesz usunąć tylko nazwy pakietów i przekazać je doapt-get remove
:Pamiętaj, że przejdzie ona przez listę zwróconą z
apt-show-versions
i usunie je jeden po drugim. W zależności od tego, co znajdzie, może to odinstalować coś niezamierzonego z powodu zależności, więc sprawdź to najpierw.źródło
libvpx0
paczka z codziennego chromu PPA. Odpowiedź @ enzotib pokazała ten pakiet.apt-show-versions
jako użytkownik inny niż root, musisudo apt-show-versions -i
zaktualizować pamięć podręczną i zobaczyć zmiany z nowo usuniętych repozytoriów / PPA (w przeciwnym razie jest aktualizowany tylko przez zadanie cron.daily)Uznałem, że użycie ppa-purge jest trudne.
Otwórz Menedżera pakietów Synaptic w Systemie, a następnie wybierz Ustawienia, Repozytoria.
Usuń te, których nie chcesz.
Gotowy!
źródło