it-swarm-eu.dev

Jaký je správný způsob, jak zcela odstranit aplikaci?

Prohledal jsem takové informace na síti a našel různé příkazové řádky, jako jsou tyto:

Sudo apt-get remove application
Sudo apt-get remove application*

Sudo apt-get remove --purge application
Sudo apt-get remove --purge application*

Sudo apt-get purge application
Sudo apt-get purge application*

Jaký je tedy správný způsob? Je nutné použít toto „*“?

Poté jsem také našel tyto příkazy:

Sudo updatedb
Sudo locate application
Sudo rm -rf (file/folder name)
588
user48949
  • apt-get remove packagename

    odstraní binární soubory, ale ne konfigurační nebo datové soubory balíčku packagename. Zůstanou také nainstalované závislosti na době instalace nedotčeny.

  • apt-get purge packagename nebo apt-get remove --purge packagename

    odstraní asi vše týkající se balíčku packagename, ale ne závislostí nainstalovaných při instalaci. Oba příkazy jsou rovnocenné.

    Zvláště užitečné, když chcete „začít znovu“ s aplikací, protože jste zmatili konfiguraci. Neodstraňuje však konfigurační ani datové soubory uložené v domovských adresářích uživatelů, obvykle ve skrytých složkách. Neexistuje žádný snadný způsob, jak je odstranit také.

  • apt-get autoremove

    odstraní osamocené balíčky, tj. nainstalované balíčky, které byly dříve instalovány jako závislost, ale již nejsou. Použijte to po odstranění balíčku, který měl nainstalované závislosti, o které už nemáte zájem.

  • aptitude remove packagename nebo aptitude purge packagename (podobně)

    se také pokusí odebrat další balíčky, které byly vyžadovány programem packagename, ale nejsou vyžadovány žádnými zbývajícími balíčky. Všimněte si, že aptitude si pamatuje pouze informace o závislostech pro balíčky, které nainstaloval.

A mnoho dalších existuje. Příkazy dpkg- na nižší úrovni lze použít (pokročilé) nebo nástroje GUI, jako je Muon, Synaptic, Software Center atd. Neexistuje jediný „správný způsob“ odebírání aplikací nebo provádění jiných interakcí s úkoly s vaší správou balíčků.

Seznam, který jste našli, je pouze příkladem. Před přijetím akce se ujistěte, že rozumíte významům a vyzkoušejte, co chce dělat (před provedením akcí podle návrhu musíte stisknout tlačítko Y).

Verze hvězdičky v otázce je pravděpodobně nesprávná; apt-get přijímá regulární výraz a ne globální vzorec jako Shell. Tak co se stane

Sudo apt-get remove application*

je následující:

  1. Shell se snaží rozšířit application* při pohledu na soubory v aktuálním adresáři. Pokud (jak je tomu normálně) nic nenajde, vrátí globální vzorec nezměněný (předpokládá se, že bash s výchozím chováním --- zsh dojde k chybě).

  2. apt-get odstraní balíčky, jejichž název obsahuje řetězec, který vyhovuje regulárnímu výrazu application*, tj. applicatio následované libovolným počtem n: applicatio, application, applicationn, libapplicatio, atd.

  3. Chcete-li vidět, jak to může být nebezpečné, zkuste (bez root pro dvojitou bezpečnost) apt-get -s remove "wine*" (-s místo toho to bude simulovat) --- řekne, že odebere všechny balíčky, které mají ve svém názvu „win“ a závislý, téměř celý systém ...

Pravděpodobně příkaz, který měl být, je opravdu

 Sudo apt-get remove "^application.*"

(poznamenejte si uvozovky a tečku), které odstraní všechny balíčky, jejichž název začíná na application.

Tyto příkazy,

Sudo updatedb                  # <-- updates the locate database (index). harmless
Sudo locate application        # <-- locates the file 'application'. harmless
Sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.

jsou zcela mimo rozsah správy balíků. Neodstraňujte soubory patřící k balíčkům bez použití správce balíčků! Bude to zmatené a je to špatný způsob, jak věci dělat.

Pokud nevíte, do kterého balíčku soubor patří, zkuste toto:

dpkg -S /path/to/file
740
gertvdijk

Pro Ubuntu 12.04 a možná vyšší je správná metoda:

Sudo apt-get --purge autoremove packagename

Podrobně zde .

Nepoužívat packagename* protože to může odstranit nechtěné balíčky a způsobit více problémů, než to vyřeší. Nebo pokud musíte, alespoň to spusťte pomocí -s, --simulate, --dry-run označte nejprve, abyste přesně viděli, co bude dělat, aniž byste to udělali.

117
Kurtosis

Tento příkaz můžete použít:

Sudo apt-get purge --auto-remove packagename

Vymaže požadované balíčky spolu se závislostmi nainstalovanými s těmito balíčky. Možnost --auto-remove (Jako alias autoremove) funguje podobně jako Sudo apt-get autoremove. Pomocí tohoto příkazu můžeme spustit jediný příkaz:

Sudo apt-get purge --auto-remove packagename

Namísto:

Sudo apt-get purge packagename
Sudo apt-get autoremove
20
pl_rock

Můžete bezpečně použít Sudo apt-get remove --purge application nebo Sudo apt-get remove applications 99% času. Pokud použijete příznak purge, odstraní také jednoduše všechny konfigurační soubory. Což může, ale nemusí být to, co chcete, v závislosti na tom, zda chcete uvedenou aplikaci přeinstalovat. The application* bude odpovídat všem aplikacím, které začínají application, což jsou obvykle pluginy, další funkce atd. hlavní aplikace, kterou odstraňujete. tj.

Sudo apt-get remove gedit*

odstraní gedit, gedit-plugins a gedit-common. Obvykle to není nutné, protože většina zásuvných modulů/přidružených programů závisí na hlavní aplikaci a při odinstalování hlavní aplikace bude automaticky odebrána (nebo označena k odstranění).

Posledním příkazem je pouze odstranění zbytků z aplikací, o kterých je známo, že mají chaotický odinstalační program, a pouze odstranění veškerých zbytků aplikace.

7
reverendj1

Při odstraňování balíčku jsem dostal několik chybových zpráv, jediný způsob, jak jsem zjistil, že fungoval, bylo toto:

mv /var/lib/dpkg/info/package.* /tmp/
dpkg --remove --force-remove-reinstreq package

Zjistil jsem, že i když používám pouze

dpkg --remove --force-remove-reinstreq package

neodstraní balíček, který mi ukazuje správnou cestu k souboru, s nímž se pohybuji:

mv /var/lib/dpkg/info/package.* /tmp/

Nahraďte balíček názvem aplikace. Použijte Sudo v Ubuntu, staňte se rootem v Debianu.

5
DangerFireBob

Tento příkaz jsem našel na internetu.

dpkg --purge --force-depends application

http://www.debian-administration.org/article/Reinstal_packages_to_fix_problems .

3
vrcmr

Chtěl jsem jen objasnit jednu věc, která se zde zdá být zdrojem zmatku. Nástroj dpkg neví ani nesleduje závislosti balíčků ve vztahu k sobě, což byl velký důvod, proč věřím, že byl vyvinut program apt. Můžete si o tom přečíst v sekci 8.6 na této stránce Debian GNU/Linux FAQ - Nástroje pro správu balíků Debian

  • S apt: Pokud jsem chtěl vymazat balíček A a má závislost nazývanou balíček B a balíček B neměl žádné další závislé balíčky, pak balíček A a B bude vymazán. Pokud má balíček B DID) další závislé balíčky, bude vymazán pouze balíček A.

  • S dpkg: Jaká závislost? Právě jsi mi řekl, abych tu zatracenou očistil
    balíček, tak jsem to udělal! Špatné plánování z vaší strany ne
    představují z mé strany nouzový stav.

Zde jsou dvě jednoplášťové vložky, které lze použít pro každou proplachovací metodu:

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs Sudo dpkg --dry-run --purge

apt-get autoremove -y; apt-get --dry-run purge -y $(dpkg --list |grep '^rc' |awk '{print $2}')

Odstranit --dry-run provést skutečnou operaci proplachování namísto hlášení, jaké akce by provedl.

2
Sysinfo.io

Závisí to na aplikaci, kterou chcete odebrat. Před vydáním příkazu yes vždy zkontrolujte jeho závislosti. Když něco odstraníte příkazovým řádkem, někdy se ukáže hrstka knihoven, které již nepotřebujete. Tyto mohou být odstraněny pomocí apt-get autoremove.

Dejte si pozor, že pomocí příkazů, jako je Sudo apt-get remove --purge název_aplikace, může odstranit některé závislosti, které jsou vyžadovány jinými aplikacemi, a jako takové může poškodit váš systém.

Pokud to chcete udělat bezpečnějším způsobem, můžete jej kdykoli odebrat pouze pomocí softwarového centra nebo pomocí příkazu apt-get remove applicationname. Pokud závislosti již nepotřebujete, vydejte apt-get autoremove později.

1
gustavokrm