Hvad er den korrekte måde at fjerne et program fuldstændigt på?

Jeg har søgt på nettet efter sådanne oplysninger og har fundet forskellige kommandolinjer, som f.eks. disse:

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*

Så hvad er den korrekte måde? Er det nødvendigt at bruge det "*"?

Efter det fandt jeg også disse kommandoer:

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

fjerner binærfilerne, men ikke konfigurations- eller datafilerne i pakken packagename. Det vil også efterlade afhængigheder, der blev installeret sammen med den på installationstidspunktet, uberørte.

  • apt-get purge packagename eller apt-get remove --purge packagename

vil fjerne alt vedrørende pakken packagename, men ikke de afhængigheder, der blev installeret sammen med den ved installationen. Begge kommandoer er ækvivalente.

Særligt nyttige, når du ønsker at 'starte forfra' med et program, fordi du har lavet rod i konfigurationen. Den fjerner dog ikke konfigurations- eller datafiler, der ligger i brugernes hjemmemapper, som regel i skjulte mapper der. Der er ingen nem måde at få dem fjernet på.

  • apt-get autoremove

fjerner forældreløse pakker, dvs. installerede pakker, der tidligere blev installeret som en afhængighed, men som ikke længere er det. Brug dette efter at have fjernet en pakke, som havde installeret afhængigheder, som du ikke længere er interesseret i.

  • aptitude remove packagename eller aptitude purge packagename (ligeledes)

vil også forsøge at fjerne andre pakker, som var påkrævet af packagename, men som ikke er påkrævet af nogen resterende pakker. Bemærk at aptitude kun husker afhængighedsoplysninger for pakker, som den har installeret.

Og der findes mange flere. Der kan bruges dpkg-kommandoer på lavere niveau (avanceret) eller GUI-værktøjer som Muon, Synaptic, Software Center osv. Der findes ikke en enkelt 'korrekt måde' at fjerne programmer eller udføre andre opgaver, der interagerer med din pakkehåndtering.

Den liste, du har fundet, er blot eksempler. Sørg for at forstå betydningen og prøv det, den vil gøre, før du accepterer handlingen (du skal trykke på Y, før den faktisk udfører handlingerne som foreslået).

Asterisk-versionen i spørgsmålet er sandsynligvis forkert; apt-get accepterer et regulært udtryk og ikke et glob-mønster som shell. Så hvad sker der med

sudo apt-get remove application*

er følgende:

  1. Shell'en forsøger at udvide application* ved at kigge på filerne i den aktuelle mappe. Hvis den (som det normalt er tilfældet) ikke finder noget, returnerer den glob-mønsteret uændret (hvis vi antager bash med standardadfærd her --- zsh vil fejle).

  2. apt-get vil fjerne de pakker hvis navn indeholder en streng der opfylder det regulære udtryk application*, dvs. applicatio efterfulgt af et vilkårligt antal n: applicatio, application, applicationn, libapplicatio, osv.

  3. For at se hvordan dette kan være farligt, prøv (uden root for dobbelt sikkerhed) apt-get -s remove "wine*" (-s vil simulere det i stedet for at gøre det) --- det vil sige at det vil fjerne alle pakker der har "win" i deres navn og de afhængige, næsten hele systemet...

Sandsynligvis er den kommando, der var ment, virkelig

 sudo apt-get remove "^application.*"

(bemærk anførselstegnene og punktummet), som vil fjerne alle pakker, hvis navn begynder med application.

Disse kommandoer,


sudo updatedb                  # 
Kommentarer (9)

Du kan roligt bruge sudo apt-get remove --purge application eller sudo apt-get remove applications i 99% af tilfældene. Når du bruger purge-flaget, fjerner det simpelthen også alle konfigurationsfiler. Hvilket måske eller måske ikke er det, du ønsker, afhængigt af om du vil geninstallere det pågældende program. application* vil matche alle programmer, der starter med application, som normalt er plugins, ekstra funktioner osv. til det hovedprogram, du fjerner. dvs.

sudo apt-get remove gedit*

vil fjerne gedit, gedit-plugins og gedit-common. Typisk er det ikke nødvendigt at gøre dette, da de fleste plugins/tilknyttede programmer er afhængige af hovedprogrammet og automatisk vil blive fjernet (eller markeret til fjernelse), når du afinstallerer hovedprogrammet.

Din sidste kommando er blot til at fjerne rester fra programmer, der er kendt for at have rodede afinstalleringsprogrammer, og den fjerner blot alle rester af programmet.

Kommentarer (0)

Det afhænger af, hvilket program du vil fjerne. Sørg altid for at kontrollere afhængighederne, før du afgiver kommandoen yes. Når du fjerner noget via kommandolinjen, vises der nogle gange en håndfuld biblioteker, som ikke længere er nødvendige. Disse kan fjernes med apt-get autoremove.

Vær opmærksom på, at ved at bruge kommandoer som sudo apt-get remove --purge applicationname kan du fjerne nogle afhængigheder, der er nødvendige for andre programmer, og som derfor kan ødelægge dit system.

Hvis du vil gøre det på den sikrere måde, kan du altid fjerne det ved hjælp af bare softwarecenteret eller apt-get remove applicationname. Hvis der ikke længere er brug for afhængighederne, kan du senere udstede apt-get autoremove.

Kommentarer (1)