Bagaimana Anda bisa menghapus paket sepenuhnya?

188

Saya mencoba melakukan instalasi octave3.2paket yang bersih.

Untuk melakukan ini, saya menghapusnya, lalu mencoba menginstalnya kembali.

Ketika saya menginstal ulang, terjadi kesalahan. Ini bisa jadi bug dalam paket, tetapi saya ingin memastikan semuanya sudah dihapus sehingga saya bisa melakukan instalasi bersih.

Apakah cukup untuk melakukan ini?

sudo apt-get --purge remove octave3.2
pengguna1012451
sumber
Bisakah seseorang menginstal ulang paket dan memperhatikan daftar paket ATAU dependensi ..?
user309924
Dianjurkan untuk mengunjungi ini
Pandya

Jawaban:

185

Ini adalah jawaban yang sangat umum untuk pertanyaan tentang efek paket pembersihan. Untuk saran khusus untuk situasi Anda, Anda harus mengedit pertanyaan Anda untuk memasukkan informasi tambahan - khususnya, teks lengkap dan tepat dari pesan kesalahan yang Anda dapatkan.

Menghapus paket dengan atau akan menghapusnya dan semua file konfigurasi global (yaitu, seluruh sistem). Inilah yang biasanya orang maksudkan ketika mereka berbicara tentang menghapus paket sepenuhnya.sudo apt purge ...sudo apt --purge remove ...

Tetapi itu tidak berarti sistem Anda sama dengan sebelum paket diinstal. Khususnya:

  • Ini tidak menghapus paket yang diinstal sebagai dependensi, ketika Anda menginstal paket yang sekarang Anda hapus. Dengan asumsi paket-paket itu bukan dependensi dari paket lain, dan bahwa Anda belum menandainya sebagai diinstal secara manual, Anda dapat menghapus dependensi dengan sudo apt autoremoveatau (jika Anda juga ingin menghapus file konfigurasi sistem secara keseluruhan) sudo apt --purge autoremove.

  • Ini tidak menghapus file konfigurasi non-sistem. Secara khusus, itu tidak menghapus konfigurasi khusus pengguna:

    • Itu tidak menghapus file konfigurasi dan direktori yang terletak di direktori home pengguna (atau di .configsubdirektori dari direktori home mereka), yang dibuat oleh perangkat lunak yang disediakan paket.

      • Jika file / folder ini tidak disimpan .config, mereka biasanya memulai dengan .dirinya sendiri. Apa pun itu, Anda dapat melihatnya dengan lsmenggunakan tanda -aatau -A, dan Anda dapat melihatnya di Nautilus dan sebagian besar peramban / pengelola file lainnya dengan menekan Ctrl+ Hatau membuka View > Show Hidden Files .
    • Itu tidak membalikkan perubahan yang dibuat ke file konfigurasi khusus pengguna yang ada.

    • Ini tidak menghapus baru gconfatau dconfkunci, atau membalik setiap gconfatau dconfkonfigurasi perubahan.

  • Menggunakan purgeatau --purge removebukannya removetidak membalikkan perubahan ke file konfigurasi sistem yang ada yang disediakan oleh paket lain atau dibuat secara manual oleh pengguna. Namun, perubahan kadang-kadang tersebut dibatalkan oleh menguninstall paket (apakah atau tidak itu purgedaripada remove).

Eliah Kagan
sumber
61

Gunakan perintah:

sudo apt-get purge --auto-remove packagename

Ini akan membersihkan paket-paket yang diperlukan bersama dengan dependensi yang diinstal dengan paket-paket itu. The --auto-removepilihan bekerja sama dengan sudo apt-get autoremove.

pl_rock
sumber
1
ini menyelesaikan masalah saya, terutama dengan certbot
T.Todua
7

Anda pertama-tama memeriksa nama paket yang ingin Anda hapus:

dpkg --list

Kemudian hapus paket yang diberikan

sudo apt-get remove package_name

Bersihkan semua kode terkait

sudo apt-get purge package_name

Lalu Autoremove

sudo apt-get autoremove

Akhirnya, lakukan pembersihan agar Anda memeriksa semuanya sudah dihapus dengan benar

sudo apt-get clean

Anda ingin memeriksa di daftar paket apakah yang ingin Anda hapus tidak terdaftar lagi, tetapi itu opsional.

Semoga harimu menyenangkan,

pengguna2777677
sumber
4

Lebih baik melacak paket dependensi tambahan yang diinstal saat Anda menginstalnya.

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

Jika Anda menghapus paket asli saja, paket dependensi mungkin tetap ada.

Jadi, Anda harus menghapus masing-masing menggunakan secara manual

apt-get purge package_name
Harikrishnan
sumber
1
Bagaimana saya bisa mendapatkan daftar paket-paket ini jika konsol saya tidak menggulir cukup jauh
Luke Taylor
@LukeTaylor apt-get install package_name > output Kemudian less output untuk melihat semua output dengan menggulir.
Harikrishnan
2

Alih-alih menghapus paket dependen yang diinstal otomatis secara manual, gunakan yang berikut ini sebagai gantinya:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    Membaca daftar paket ... Selesai
    Membangun pohon ketergantungan       
    Membaca informasi keadaan ... Selesai
    Paket-paket berikut akan DIHAPUS
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      linux-image-3.16.0-30-generic * linux-image-extra-3.16.0-30-generic *
    0 untuk meningkatkan, 0 untuk menginstal baru, 5 untuk menghapus dan 23 tidak untuk meningkatkan.
    Setelah operasi ini, ruang disk 279 MB akan dibebaskan.
    Apakah Anda ingin melanjutkan? [Y / n]

zanfilip
sumber
2

Jika Anda ingin menghapus beberapa paket rahasia Anda dapat menggunakan perintah ini:

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

jangan lupa tombol "-y" karena jika tidak, apt-get akan terus bertanya tentang menghapus setiap paket dan tidak akan menghapus apa pun.

Kerem Ersoy
sumber
2
Ini bisa berguna tetapi juga bisa merusak: Ini bisa dengan mudah mencocokkan paket yang Anda tidak ingin hapus, dan hapus konfigurasinya tanpa konfirmasi! Untungnya karena nama paket tidak pernah mengandung spasi, kita bisa memutarnya dan drop -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). Itu akan lebih aman.
joeytwiddle
Mungkin akan lebih aman untuk menjalankan perintah sebagai: dpkg --get-choices | grep PACKAGE_NAME | awk '{print $ 1}' Pertama dan kemudian jalankan dengan xargs adalah praktik yang lebih baik sehingga pengguna akan melihat apa yang akan dihapus sebagai hasil dari perintah.
Kerem Ersoy
0

Opsi lain yang Anda miliki, adalah menggunakan debfosterpaket. Ini akan secara interaktif menemukan dan menyarankan paket untuk dihapus (dan dibersihkan) bersama dengan paket dependen.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
MacroMan
sumber