Saya telah mencari di internet untuk informasi tersebut dan menemukan baris perintah yang berbeda, seperti yang berikut 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 cara yang benar? Apakah perlu menggunakan "*" itu?
Setelah itu, saya juga menemukan perintah-perintah ini:
sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
command-line
package-management
pengguna48949
sumber
sumber
application*
kadang-kadang dapat memberikan hasil yang tidak terduga - misalnya, jika Anda memiliki file di direktori saat ini bernamaapplication_information
, shell akan memperluasnya sebelum diteruskan ke apt-get. Jika ini terjadi dan Anda menginginkan tanda bintang, Anda dapat menggunakanapplication\*
atau'application*'
application*
bahkan lebih berbahaya di mana tidak ada file di direktori saat ini:apt-get
menggunakan ekspresi reguler, tidak ada pola glob. Orang-orang hampir menghapus seluruh sistem yang mencoba untuk dihapuswine*
.application*
jugaapplication\*
aman! Mengutip*
dengan\
atau'
'
hanya meningkatkan risiko, memastikan*
diteruskan sebagaimana adanyaapt-get
(meskipun biasanya memang demikian!), Menyebabkanapt-get
menafsirkan argumen sebagai regex. Dalam regex*
berarti "nol atau lebih dari karakter sebelumnya." Bentuk kesalahan yang umum adalah menghapuswine*
, menghapus semua paket denganwin
(bukanwine
,win
) di mana saja dalam nama mereka dan semua paket tergantung pada salah satu dari mereka. Lihat penjelasan ini dan kemungkinan perbaikannya . @IzkataJawaban:
apt-get remove packagename
akan menghapus binari, tetapi bukan konfigurasi atau file data paket
packagename
. Ini juga akan membuat dependensi terinstal dengannya pada waktu instalasi tidak tersentuh.apt-get purge packagename
atauapt-get remove --purge packagename
akan menghapus tentang segala sesuatu tentang paket
packagename
, tetapi tidak dependensi yang diinstal dengannya saat instalasi. Kedua perintah itu setara.Sangat berguna ketika Anda ingin 'memulai semuanya' dengan aplikasi karena Anda mengacaukan konfigurasi. Namun, itu tidak menghapus file konfigurasi atau data yang berada di direktori home pengguna, biasanya di folder tersembunyi di sana. Tidak ada cara mudah untuk menghapusnya juga.
apt-get autoremove
menghapus paket-paket yatim, yaitu paket yang diinstal yang dulu diinstal sebagai dependensi, tetapi tidak lagi. Gunakan ini setelah menghapus paket yang telah menginstal dependensi yang tidak lagi Anda minati.
aptitude remove packagename
atauaptitude purge packagename
(juga)juga akan berusaha untuk menghapus paket lain yang diharuskan
packagename
pada tetapi tidak diharuskan oleh paket yang tersisa. Perhatikan bahwaaptitude
hanya mengingat informasi dependensi untuk paket yang telah diinstal.Dan masih banyak lagi yang ada.
dpkg
Perintah tingkat bawah dapat digunakan (lanjutan), atau alat GUI seperti Muon, Synaptic, Software Center, dll. Tidak ada satu pun 'cara yang benar' untuk menghapus aplikasi atau melakukan tugas lain yang berinteraksi dengan manajemen paket Anda.Daftar yang Anda temukan hanyalah contoh. Pastikan Anda memahami maknanya dan mencoba apa yang ingin dilakukan sebelum menerima tindakan (Anda perlu menekan
Y
sebelum benar-benar melakukan tindakan seperti yang diusulkan).Versi asterisk dalam pertanyaan mungkin salah ;
apt-get
menerima ekspresi reguler dan bukan pola gumpalan sebagai shell. Jadi apa yang terjadi?adalah sebagai berikut:
Shell mencoba memperluas
application*
melihat file di direktori saat ini. Jika (seperti biasanya kasus) tidak menemukan apa pun, ia mengembalikan pola glob tidak diubah (seandainyabash
dengan perilaku default di sini ---zsh
akan kesalahan keluar).apt-get
akan menghapus paket yang namanya mengandung string yang memenuhi ekspresi regulerapplication*
, yaitu,applicatio
diikuti oleh jumlah sewenang-wenangn
:applicatio
,application
,applicationn
,libapplicatio
, dllUntuk melihat bagaimana ini bisa berbahaya, coba (tanpa root untuk keamanan ganda)
apt-get -s remove "wine*"
(-s
akan mensimulasikan hal itu alih-alih melakukannya) --- ia akan mengatakan akan menghapus semua paket yang "menang" dalam nama mereka dan dependennya, hampir seluruh sistem ...Mungkin, perintah yang dimaksud benar-benar
(catat tanda kutip dan titik) yang akan menghapus semua paket yang namanya dimulai
application
.Perintah ini,
sepenuhnya di luar ruang lingkup manajemen paket. Jangan hapus file milik paket tanpa menggunakan manajer paket! Ini akan membingungkan dan merupakan cara yang salah untuk melakukan sesuatu.
Jika Anda tidak tahu paket milik file mana, coba ini:
sumber
apt-get-autoremove --purge
Penting juga untuk dicatat bahwa file konfigurasi di direktori home Anda tidak terpengaruh oleh opsi --purge. Ini Anda harus menghapus secara manual.apt remove -s texlive*
atauapt-get
rekannya mengembalikan garis sepertiNote, selecting 'texlive-font-utils' for glob 'texlive*'
(menyiratkan bahwa mereka memang menerima gumpalan), diikuti oleh yang biasaPackage 'texlive-common' is not installed, so not removed
, dan akhirnyaRemv
garis, sepertiRemv texlive-font-utils [2015.20160320-1] [...]
.apt-get remove packa*
memang benar-benar mengambil gumpalanpacka*
alih-alih melihatnya sebagai regex: cocokpackage
tetapi tidakpack
.Untuk Ubuntu 12.04 dan mungkin lebih tinggi, metode yang benar adalah:
Seperti yang dijelaskan di sini .
Jangan gunakan
packagename*
karena dapat menghapus paket yang tidak diinginkan dan menyebabkan lebih banyak masalah daripada yang dipecahkan. Atau jika Anda harus, setidaknya menjalankannya dengan-s
,--simulate
,--dry-run
bendera pertama yang melihat persis apa yang akan dilakukan tanpa melakukan hal itu.sumber
Anda dapat menggunakan perintah ini:
Ini akan membersihkan paket-paket yang diperlukan bersama dengan dependensi yang diinstal dengan paket-paket itu. The
--auto-remove
pilihan (menjadi aliasautoremove
) bekerja sama dengansudo apt-get autoremove
. Dengan menggunakan perintah ini kita dapat menjalankan satu perintah:Dari pada:
sumber
sudo apt-get --purge autoremove packagename
. Perintah yang sama 1 di siniapt-get autoremove --purge
gantiapt-get purge --auto-remove
?Anda dapat menggunakan dengan aman
sudo apt-get remove --purge application
atausudo apt-get remove applications
99% dari waktu. Ketika Anda menggunakanpurge
flag, itu hanya menghapus semua file konfigurasi juga. Yang mungkin atau mungkin tidak apa yang Anda inginkan, tergantung pada apakah Anda ingin menginstal ulang aplikasi tersebut. Iniapplication*
akan cocok dengan semua aplikasi yang dimulai denganapplication
, yang biasanya plugins, fitur tambahan, dll dari aplikasi utama yang Anda hapus. yaituakan menghapus
gedit
,gedit-plugins
dangedit-common
. Biasanya tidak perlu melakukan ini, karena sebagian besar plugin / program terkait tergantung pada aplikasi utama, dan secara otomatis akan dihapus (atau ditandai untuk dihapus) ketika Anda menghapus instalasi aplikasi utama.Perintah terakhir Anda hanyalah menghapus sisa dari aplikasi yang diketahui memiliki uninstaller berantakan, dan itu hanya menghapus sisa-sisa aplikasi.
sumber
Saya mendapat beberapa pesan kesalahan saat menghapus paket, satu-satunya cara saya menemukan bahwa itu berfungsi adalah:
Saya menemukan bahwa meskipun hanya menggunakan
tidak menghapus paket itu menunjukkan kepada saya jalur yang benar ke file untuk bergerak dengan:
Paket pengganti dengan nama aplikasi Anda. Gunakan sudo di Ubuntu, jadikan root di Debian.
sumber
Saya menemukan perintah ini di internet.
http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems .
sumber
Itu tergantung pada aplikasi yang ingin Anda hapus. Selalu pastikan untuk memeriksa dependensinya sebelum mengeluarkan perintah ya. Saat Anda menghapus sesuatu berdasarkan baris perintah, terkadang akan muncul beberapa perpustakaan yang tidak lagi diperlukan. Ini dapat dihapus 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, dengan demikian, dapat merusak sistem Anda.
Jika Anda ingin melakukannya dengan cara yang lebih aman, Anda selalu dapat menghapusnya hanya dengan menggunakan pusat perangkat lunak atau apt-get remove applicationname. Jika dependensi tidak diperlukan lagi, keluarkan apt-get autoremove nanti.
sumber
Saya hanya ingin mengklarifikasi satu hal yang tampaknya menjadi sumber kebingungan di sini. The
dpkg
utilitas tidak tahu tentang atau melacak paket dependensi dalam hubungannya satu sama lain, yang merupakan alasan besar yangapt
dikembangkan saya percaya. Anda dapat membacanya di bagian 8.6 di halaman ini . Debian GNU / Linux FAQ - Alat manajemen paket DebianDengan apt: Jika saya ingin membersihkan paket A, dan ia memiliki dependensi yang disebut paket B, dan paket B tidak memiliki paket dependen lainnya, maka paket A dan B akan dibersihkan. Jika paket B DID memiliki paket dependen lainnya, maka hanya paket A yang akan dihapus.
Dengan dpkg: Ketergantungan apa? Anda baru saja mengatakan kepada saya untuk membersihkan
paket sialan itu jadi itulah yang saya lakukan! Perencanaan yang buruk di pihak Anda bukan
merupakan keadaan darurat di pihak saya.
Dengan itu, berikut adalah dua one-liner yang dapat digunakan untuk setiap metode pembersihan:
Hapus
--dry-run
untuk melakukan operasi pembersihan yang sebenarnya alih-alih melaporkan tindakan apa yang akan diambil.sumber