GNU/Linux >> Znalost Linux >  >> Ubuntu

Ubuntu – Proč „apt-get Autoremove“ nefungovalo správně?

Nainstaloval jsem Pipelight z archivu PPA podle těchto pokynů.

Instalační příkaz, sudo apt-get install --install-recommends pipelight-multi byl pouze pro jeden balíček, ale vyžadovalo to stažení a instalaci asi 180 závislých balíčků, z nichž asi 40 byly upgrady na aktuálně nainstalované balíčky.

Proto bylo nainstalováno asi 140 nových balíčků.

Pipelight následně nefungoval, tak jsem ho odstranil:

sudo apt-get purge pipelight-multi

Žádné další balíčky nebyly odstraněny.

Potom jsem použil sudo apt-get autoremove . Tento příkaz odstranil všechny automaticky odstranitelné balíčky. Těch bylo přesně 100 (rovněž přesně 100 balíčků bylo v seznamu Synaptic Package Manager ‘Autoremovable’).

Zůstalo tedy asi 40 balíčků, které nebyly považovány za automaticky odstranitelné, a proto nebyly odstraněny. Musel jsem je odstranit ručně.

Před instalací Pipelight nebyly na mém systému žádné nesplněné závislosti; a neoznačil jsem žádné balíčky jako ručně nainstalované, nainstalované nebo odstraněné cokoli jiného nebo něco podobného. Mezi instalací Pipelight a jeho odstraněním uplynulo jen asi deset minut.

Proč tedy poté, co jsem odebral Pipelight, nebyly všechny jeho nepotřebné závislosti označeny jako automaticky odstranitelné?

Přijatá odpověď:

Můj nejlepší odhad je, že těch 40 balíčků bylo doporučeno jinými balíčky, které jste již nainstalovali; pipelight-multi spolu s --install-recommends volba způsobila, že byly nainstalovány, ale po jeho odstranění byly kvůli těmto doporučením zachovány. Protože jste balíčky odstranili ručně, je těžké to určit, ale v budoucnu můžete spustit aptitude why ${package} pro každý balíček, o kterém si myslíte, že by měl být automaticky odstraněn, a aptitude vám řekne, proč je uchováván.

Mechanika za tím nemusí být nutně intuitivní. Když je balíček označen jako automaticky odstranitelný, ať už ručně, nebo automaticky (v druhém případě, protože je nainstalován automaticky, aby vyhovoval závislosti nebo doporučení), je příznak automatického odstranění jedinou uloženou informací; systém si nepamatuje, proč byl balíček automaticky nainstalován. Takové balíčky jsou uchovávány pouze tak dlouho, dokud na nich závisí nějaký jiný balíček nebo je doporučí (toto je výchozí nastavení, lze jej změnit).

To vše by vysvětlovalo vaši situaci následovně. Již máte nějaký jiný balíček, A , nainstalovaný; tento balíček doporučuje B ale ten druhý není nainstalován. Nainstalujete pipelight-multi který také doporučuje B; za předpokladu, že jste výslovně uvedli --install-recommends , známe B se poté nainstaluje spolu s pipelight-multi . Když odeberete pipelight-multi a spusťte apt-get autoremove , B je označeno jako automaticky odstranitelné a bude zaškrtnuto, ale protože A je stále nainstalován, B je zachován, i když balíček, který způsobil jeho instalaci, je pryč. Protože A doporučuje pouze B , můžete ručně odstranit B abyste se dostali zpět do výchozí situace.

Související:Jak funguje rozhraní přepínačů?
Ubuntu
  1. Jak zobrazit seznam nainstalovaných balíčků na Ubuntu 20.04

  2. Jak zobrazit seznam nainstalovaných balíčků v Ubuntu

  3. Zálohujte nainstalované balíčky a obnovte je na čerstvě nainstalovaném systému Ubuntu

  1. Jak zobrazit seznam nainstalovaných úložišť v Ubuntu a Debianu

  2. Proč „ukončit &“ nefunguje?

  3. Instalace serveru Ubuntu Trusty Red5 se nespustí?

  1. Seznam nainstalovaných balíčků v Ubuntu 20.04 – Jak provést tento úkol?

  2. Rozbité balíčky Ubuntu 16.04 po nové instalaci?

  3. Proč centrum softwaru Ubuntu nenainstaluje soubory .deb?