Jag har sökt på nätet efter sådan information och funnit olika kommandorader, till exempel dessa:
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å vad är det rätta sättet? Är det nödvändigt att använda det där "*"?
Efter det hittade jag också dessa kommandon:
sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
apt-get remove packagename
tar bort binärfilerna, men inte konfigurations- eller datafiler för paketet packagename
. Det kommer också att lämna beroenden som installerades tillsammans med paketet vid installationstillfället orörda.
apt-get purge packagename
eller apt-get remove --purge packagename
.kommer att ta bort ungefär allt som rör paketet packagename
, men inte de beroenden som installerades tillsammans med det vid installationen. Båda kommandona är likvärdiga.
Särskilt användbart när du vill 'börja om från början' med ett program för att du strulat till det i konfigurationen. Det tar dock inte bort konfigurations- eller datafiler som finns i användarnas hemkataloger, vanligtvis i dolda mappar där. Det finns inget enkelt sätt att få bort även dessa.
apt-get autoremove
tar bort föräldralösa paket, dvs. installerade paket som tidigare installerades som ett beroende, men som inte längre är det. Använd detta efter att ha tagit bort ett paket som hade installerat beroenden som du inte längre är intresserad av.
aptitude remove packagename
eller aptitude purge packagename
(likaså)försöker också ta bort andra paket som krävdes av packagename
men som inte krävs av några återstående paket. Observera att aptitude
endast kommer ihåg beroendeinformation för paket som den har installerat.
Och det finns många fler. Man kan använda dpkg
-kommandon på lägre nivå (avancerade) eller GUI-verktyg som Muon, Synaptic, Software Center, etc. Det finns inget enda 'korrekt sätt' att ta bort program eller utföra andra uppgifter som interagerar med din pakethantering.
Listan du hittade är bara exempel. Se till att du förstår innebörden och prova vad den vill göra innan du accepterar åtgärden (du måste trycka på Y
innan den faktiskt utför åtgärderna enligt förslaget).
Asteriskversionen i frågan är förmodligen fel; apt-get
accepterar ett reguljärt uttryck och inte ett globmönster som skalet. Så vad händer med
sudo apt-get remove application*
är följande:
Skalet försöker expandera application*
genom att titta på filerna i den aktuella katalogen. Om (vilket normalt är fallet) den inte hittar något, returnerar den globmönstret oförändrat (om bash
har standardbeteendet här --- zsh
kommer att göra fel).
apt-get
tar bort de paket vars namn innehåller en sträng som uppfyller det reguljära uttrycket application*
, dvs. applicatio
följt av ett godtyckligt antal n
: applicatio
, application
, applicationn
, libapplicatio
, osv.
För att se hur detta kan vara farligt, prova (utan root för dubbel säkerhet) apt-get -s remove "wine*"
(-s
simulerar saken istället för att göra den) --- det kommer att säga att det kommer att ta bort alla paket som har "win" i sitt namn och de som är beroende, nästan hela systemet...
Förmodligen är kommandot som var tänkt egentligen
sudo apt-get remove "^application.*"
(notera citattecken och pricken) som tar bort alla paket vars namn börjar på application
.
Dessa kommandon,
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.
ligger helt utanför pakethanteringens räckvidd. Ta inte bort filer som tillhör paket utan att använda pakethanteraren! Det kommer att bli förvirrat och är det felaktiga sättet att göra saker och ting.
Om du inte vet till vilket paket en fil hör, prova detta:
dpkg -S /path/to/file
Du kan säkert använda sudo apt-get remove --purge application
eller sudo apt-get remove applications
99 % av tiden. När du använder flaggan purge
tar du helt enkelt bort alla konfigurationsfiler också. Vilket kan vara eller inte vara vad du vill, beroende på om du vill installera om nämnda applikation. application*
kommer att matcha alla program som börjar med application
, vilket vanligtvis är plugins, extra funktioner, etc. för det huvudprogram du tar bort, dvs.
sudo apt-get remove gedit*
skulle ta bort gedit
, gedit-plugins
och gedit-common
. Vanligtvis är det inte nödvändigt att göra detta, eftersom de flesta plugins/associerade program är beroende av huvudprogrammet, och kommer automatiskt att tas bort (eller markeras för borttagning) när du avinstallerar huvudprogrammet.
Ditt sista kommando är bara för att ta bort rester från program som är kända för att ha röriga avinstallationsprogram, och det tar bara bort alla rester av programmet.
Det beror på vilket program du vill ta bort. Kontrollera alltid dess beroenden innan du skickar kommandot yes. När du tar bort något via kommandoraden visas ibland en handfull bibliotek som inte längre behövs. Dessa kan tas bort med apt-get autoremove.
Var uppmärksam på att genom att använda kommandon som sudo apt-get remove --purge applicationname kan du ta bort vissa beroenden som behövs av andra program och som därför kan skada ditt system.
Om du vill göra det på ett säkrare sätt kan du alltid ta bort det genom att bara använda programvaruhuset eller apt-get remove applicationname. Om beroendena inte längre behövs kan du använda apt-get autoremove senare.