Bir paketi nasıl tamamen çıkarabilirsiniz?


188

octave3.2Paketin temiz bir yüklemesini yapmaya çalışıyorum .

Bunu yapmak için kaldırdım, sonra yeniden yüklemeyi denedim.

Yeniden yüklediğimde bir hata oluştu. Pakette bir hata olabilir, ancak temiz bir yükleme yapabilmem için her şeyin kaldırıldığından emin olmak istiyorum.

Bunu yapmak için yeterli mi?

sudo apt-get --purge remove octave3.2

Biri paketi yeniden yükleyebilir ve paketin VEYA bağımlılık listesine dikkat edebilir mi?
user309924

Bunu ziyaret etmeniz önerilir
Pandya

Yanıtlar:


185

Bu, tasfiye paketlerinin etkileri hakkındaki soruya verilen çok genel bir cevaptır. Durumunuza özel tavsiyeler için, ek bilgilerinizi (özellikle de aldığınız hata iletisinin tam ve tam metni) içerecek şekilde sorunuzu düzenlemeniz gerekir.

Paketleri veya paketlerini kaldırmak onları ve tüm genel (yani sistem çapında) yapılandırma dosyalarını kaldıracaktır. Bu genellikle insanların bir paketi tamamen kaldırmaktan bahsettiklerinde kastettikleri şeydir.sudo apt purge ...sudo apt --purge remove ...

Ancak bu, sisteminizin paket kurulmadan öncekiyle aynı olduğu anlamına gelmez. Özellikle:

  • Bu, şimdi kaldırmakta olduğunuz paketi yüklediğinizde, bağımlılıklar olarak yüklenen paketleri kaldırmaz. Bu paketlerin başka paketlerin bağımlılığı olmadığını ve bunları el ile yüklü olarak işaretlemediğinizi varsayarak, bağımlılıkları sudo apt autoremoveveya ile kaldırabilirsiniz (sistem genelinde yapılandırma dosyalarını da silmek istiyorsanız) sudo apt --purge autoremove.

  • Bu, sistem çapında olmayan yapılandırma dosyalarını kaldırmaz. Özellikle, kullanıcıya özel yapılandırmayı kaldırmaz:

    • .configPaketin sağladığı yazılım tarafından oluşturulan , kullanıcıların ev dizinlerinde (veya giriş dizinlerinin alt dizinlerinde) bulunan yapılandırma dosyalarını ve dizinlerini kaldırmaz .

      • Bu dosyalar / klasörler saklanmazsa .config, genellikle .kendileri ile başlar . Her iki durumda da ls, -aveya -Aişaretini kullanarak bunları görebilir ve Ctrl+ tuşlarına basarak Hveya Görünüm > Gizli Dosyaları Göster seçeneğine giderek Nautilus'ta ve diğer dosya tarayıcılarında / yöneticilerinde görebilirsiniz .
    • Mevcut kullanıcıya özel konfigürasyon dosyalarında yapılan değişiklikleri tersine çevirmez.

    • Yeni gconfveya dconfanahtarları kaldırmaz veya herhangi bir gconfveya dconfyapılandırma değişikliğini tersine çevirmez .

  • Kullanmak purgeveya --purge removebunun yerine, removediğer paketler tarafından sağlanan veya kullanıcı tarafından elle oluşturulan mevcut sistem genelinde yapılandırma dosyalarındaki değişiklikleri tersine çevirmez. Bununla birlikte, bazen bu tür değişiklikler paketi kaldırarak yapılır (a purgeyerine bir olsun ya da olmasın remove).


61

Komutu kullanın:

sudo apt-get purge --auto-remove packagename

Gerekli paketleri, bu paketlerle yüklenen bağımlılıklar ile birlikte temizleyecektir. --auto-removeSeçenek benzer şekilde çalışır sudo apt-get autoremove.


1
Bu benim sorunumu çözdü, özellikle certbot ile
T.Todua

7

Önce kaldırmak istediğiniz paketin adını kontrol edin:

dpkg --list

Sonra verilen paketi çıkarın

sudo apt-get remove package_name

İlgili kodları temizleyin

sudo apt-get purge package_name

Ardından Otomatik Dönme

sudo apt-get autoremove

Sonunda bir temizlik yapın, böylece her şeyin doğru şekilde kaldırıldığını kontrol edin

sudo apt-get clean

Paketler listesinde kaldırmak istediğiniz listenin artık listelenip listelenmediğini kontrol etmek istiyorsunuz, ancak isteğe bağlıdır.

İyi günler dilerim,


4

Bir tane kurarken kurulu olan ekstra bağımlılık paketlerini takip etsen iyi olur.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

Yalnızca orijinal paketi çıkarırsanız, bağımlılık paketi kalabilir.

Yani her birini kullanarak el ile kaldırmak zorundasınız

apt-get purge package_name


@LukeTaylor apt-get install package_name > output Sonra less output tüm çıktıları kaydırma ile görmek için.
Harikrishnan,

2

Otomatik yüklü bağımlı paketleri manuel olarak kaldırmak yerine, aşağıdakileri kullanın:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get - açık otomatik alma
    Paket listeleri okunuyor ... Tamamlandı
    Bağımlılık ağacı oluşturma       
    Durum bilgisi okunuyor ... Tamamlandı
    Aşağıdaki paketler ÇIKARILACAK
      libupstart1 * linux-başlıkları-3.16.0-30 * linux-başlıkları-3.16.0-30-genel *
      linux-image-3.16.0-30-jenerik * linux-image-extra-3.16.0-30-jenerik *
    Yükseltmek için 0, yükseltmek için 0, yükseltmek için 5 ve kaldırmamak için 23.
    Bu işlemden sonra 279 MB disk alanı boşaltılacaktır.
    Devam etmek istiyor musun? [E / N]


2

Bazı gizli paketleri kaldırmak istiyorsanız, şu komutları kullanabilirsiniz:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

"-y" anahtarını unutma, çünkü apt-get, paketlerin kaldırılması hakkında sormaya devam eder ve hiçbir şeyi kaldırmaz.


2
Bu yararlı olabilir, ancak yıkıcı da olabilir: Gerçekten kaldırmak istemediğiniz bir paketle kolayca eşleşebilir ve yapılandırmasını onaylamadan silebilirsiniz! Neyse ki, paket adları hiçbir zaman boşluk içermediğinden, onu tersine çevirip -y:: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). Bu biraz daha güvenli olurdu.
joeytwiddle

Komutu şu şekilde çalıştırmak daha güvenli olabilir: dpkg --get-choices | grep PACKAGE_NAME | awk '{print $ 1}' Önce ve sonra xargs ile çalıştırın, kullanıcının komutun sonunda neyin silineceğini görmesi için daha iyi bir uygulamadır.
Kerem Ersoy

0

Başka bir seçenek var, debfosterpaketi kullanıyor . Bu, etkileşimli paketleri birlikte çıkarmak (ve temizlemek) için paketleri etkileşimli olarak bulur ve önerir.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.