I've mencari bersih untuk informasi tersebut dan menemukan berbagai baris perintah, seperti yang ini:
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*
Jadi, apa adalah cara yang benar? Adalah perlu untuk menggunakan "*"?
Setelah itu, saya juga menemukan perintah ini:
sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
apt-get remove packagename
akan menghapus binari, tapi tidak konfigurasi atau file data dari paket packagename
. Hal ini juga akan meninggalkan ketergantungan dipasang dengan itu pada waktu instalasi tersentuh.
apt-get purge packagename
atau apt-get remove --purge packagename
akan menghapus tentang segala ** mengenai paket packagename
, tapi tidak ketergantungan diinstal dengan instalasi. Perintah kedua adalah setara.
Sangat berguna ketika anda ingin 'mulai dari' dengan aplikasi karena anda messed up konfigurasi. Namun, hal itu tidak menghapus konfigurasi atau file data pengguna yang berada di home direktori, biasanya di folder tersembunyi di sana. Tidak ada cara yang mudah untuk mendapatkan orang-orang dihapus juga.
apt-get autoremove
menghilangkan yatim piatu paket, yaitu paket yang terinstal yang digunakan untuk dipasang sebagai ketergantungan, tetapi tidak't lagi. Gunakan ini setelah menghapus paket yang telah terinstal dependensi anda're tidak lagi tertarik.
bakat menghapus packagename
atau aptitude purge packagename
(demikian juga)juga akan mencoba untuk menghapus paket-paket lain yang dibutuhkan oleh packagename
on tetapi tidak diperlukan oleh setiap sisa paket. Perhatikan bahwa bakat
hanya mengingat ketergantungan informasi untuk paket-paket yang telah diinstal.
Dan masih banyak lagi ada. -Tingkat yang lebih rendah dpkg
-perintah yang dapat digunakan (lanjutan), atau alat GUI seperti Muon, Synaptic, Software Center, dll. Ada's tidak ada satu 'cara yang benar' menghapus aplikasi atau melakukan tugas-tugas lain yang berinteraksi dengan anda paket manajemen.
Daftar yang anda temukan hanyalah contoh. Pastikan anda memahami makna dan mencoba apa yang ingin dilakukan sebelum menerima tindakan (anda perlu tekan Y
sebelum benar-benar melakukan tindakan seperti yang diusulkan).
Asterisk versi dalam pertanyaan ini mungkin salah; apt-get
menerima ekspresi reguler dan tidak glob pola seperti shell. Jadi apa yang terjadi dengan
sudo apt-get remove application*
adalah sebagai berikut:
Shell mencoba untuk memperluas aplikasi*
melihat file dalam direktori saat ini. Jika (seperti yang biasanya terjadi) ia menemukan apa-apa, ia mengembalikan glob pola tidak berubah (seandainya bash
dengan perilaku default di sini --- zsh
akan keluar error).
apt-get
akan menghapus paket-paket yang namanya berisi string yang memenuhi ekspresi regular aplikasi*
, artinya, aplikasi
diikuti oleh jumlah sewenang-wenang n
: aplikasi
, aplikasi
, applicationn
, libapplicatio
, dll.
Untuk melihat bagaimana hal ini bisa berbahaya, mencoba (tanpa root untuk double safety) apt-get -s menghapus "anggur*"
(-s
akan mensimulasikan hal bukannya melakukan itu) --- itu akan mengatakan akan menghapus semua paket yang telah "menang" dalam nama mereka dan tergantung, hampir seluruh sistem...
Mungkin, perintah yang dimaksudkan adalah benar-benar
sudo apt-get remove "^application.*"
(catatan kutipan dan dot) yang akan menghapus semua paket yang namanya dimulai dengan aplikasi
.
Perintah ini,
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.
benar-benar di luar lingkup manajemen paket. Jangan hapus file yang dimiliki untuk paket tanpa menggunakan manajer paket! Itu akan bingung dan salah cara untuk melakukan sesuatu.
Jika anda don't tahu di mana paket file termasuk, coba ini:
dpkg -S /path/to/file
Untuk Ubuntu 12.04 dan mungkin lebih tinggi, metode yang tepat adalah:
sudo apt-get --purge autoremove packagename
Seperti yang dijelaskan di sini.
Jangan gunakan packagename*
seperti yang dapat menghapus paket yang tidak diinginkan dan menyebabkan lebih banyak masalah daripada memecahkan. Atau jika anda harus, setidaknya menjalankannya dengan -s
, --mensimulasikan
, --dry-run
bendera pertama untuk melihat secara tepat apa yang akan dilakukan tanpa melakukan hal itu.
Anda dapat menggunakan perintah ini:
sudo apt-get purge --auto-remove packagename
Itu akan membersihkan paket yang dibutuhkan beserta dependencies yang diinstal dengan paket tersebut. The --auto-menghapus
pilihan (menjadi alias autoremove
) bekerja sama dengan sudo apt-get autoremove
. Dengan menggunakan perintah ini kita dapat menjalankan satu perintah:
sudo apt-get purge --auto-remove packagename
Bukannya:
sudo apt-get purge packagename
sudo apt-get autoremove
Anda dapat dengan aman menggunakan sudo apt-get remove --purge aplikasi
atau sudo apt-get remove aplikasi
99% dari waktu. Ketika anda menggunakan purge
bendera, itu hanya menghapus semua file konfigurasi juga. Yang mungkin atau mungkin tidak menjadi apa yang anda inginkan, tergantung pada apakah anda ingin menginstal ulang kata aplikasi. Aplikasi*
akan cocok dengan semua aplikasi yang dimulai dengan aplikasi
, yang biasanya plugin, fitur tambahan, dll dari aplikasi utama anda menghapus. yaitu
sudo apt-get remove gedit*
akan menghapus gedit
, gedit-plugins
dan gedit-umum
. Biasanya hal ini tidak perlu untuk melakukan hal ini, karena kebanyakan plugin/program terkait tergantung pada aplikasi utama, dan secara otomatis akan dihapus (atau ditandai untuk penghapusan) ketika anda meng-uninstall aplikasi utama.
Anda perintah terakhir adalah hanya untuk menghilangkan sisa-sisa makanan dari aplikasi yang dikenal memiliki berantakan uninstallers, dan itu hanya menghapus sisa aplikasi.
Saya mendapat beberapa pesan kesalahan menghapus paket, satu-satunya cara saya menemukan bahwa bekerja adalah ini:
mv /var/lib/dpkg/info/package.* /tmp/
dpkg --remove --force-remove-reinstreq package
Saya menemukan bahwa meskipun hanya menggunakan
dpkg --remove --force-remove-reinstreq package
tidak menghapus paket itu menunjukkan saya jalan yang benar untuk file untuk pindah dengan:
mv /var/lib/dpkg/info/package.* /tmp/
Pengganti paket dengan nama aplikasi. Gunakan sudo di Ubuntu, menjadi root pada Debian.
Hal ini tergantung pada aplikasi yang ingin anda hapus. Selalu pastikan untuk memeriksa dependensi sebelum mengeluarkan ya perintah. Ketika anda menghapus sesuatu dengan baris perintah, itu kadang-kadang akan menunjukkan beberapa perpustakaan yang tidak lagi diperlukan. Ini dapat dihilangkan dengan apt-get autoremove.
Berhati-hatilah bahwa dengan menggunakan perintah seperti sudo apt-get remove --purge applicationname dapat menghapus beberapa dependensi yang dibutuhkan oleh aplikasi lain dan, seperti itu, mungkin dapat merusak sistem anda.
Jika anda ingin melakukan hal ini dalam cara yang lebih aman, anda selalu dapat menghapusnya hanya dengan menggunakan software center atau apt-get remove applicationname. Jika dependensi aren't diperlukan lagi, masalah apt-get autoremove nanti.
Saya hanya ingin memperjelas satu hal yang tampaknya menjadi sumber kebingungan di sini.
Dpkg
utilitas tidak tahu tentang atau melacak paket dependensi dalam hubungannya satu sama lain, yang adalah alasan besar bahwa apt
dikembangkan aku percaya. Anda dapat membaca tentang hal itu di bagian 8.6 di halaman ini Debian GNU/Linux FAQ - paket Debian alat manajemen
Dengan apt: Jika saya ingin purge paket A, dan memiliki ketergantungan disebut paket B, dan paket B tidak lain tergantung paket, kemudian paket A dan B akan dibersihkan. Jika paket B TIDAK memiliki lain tergantung paket, maka hanya paket Yang akan dibersihkan.
Dengan dpkg: Apa yang ketergantungan? Anda hanya mengatakan kepada saya untuk membersihkan sialan paket sehingga's apa yang saya lakukan! Perencanaan yang buruk pada bagian anda tidak merupakan keadaan darurat di bagian saya.
Dengan mengatakan bahwa, di sini adalah dua satu-liners yang dapat digunakan untuk masing-masing metode pembersihan:
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}')
Menghapus --dry-run
untuk melakukan yang sebenarnya purge operasi bukannya melaporkan tindakan apa yang akan diambil.