Apa perbedaan antara perintah-perintah ini?
sudo apt-get autoremove --purge packagenames
sudo apt-get remove --purge packagenames
sudo apt-get purge purge packagenmaes
sudo apt-get remove packagenames
sudo apt-get autoremove
sumber
Apa perbedaan antara perintah-perintah ini?
sudo apt-get autoremove --purge packagenames
sudo apt-get remove --purge packagenames
sudo apt-get purge purge packagenmaes
sudo apt-get remove packagenames
sudo apt-get autoremove
remove
batalkan pencopotan paket yang diberi nama setelahnya.autoremove
batalkan instal semua paket yang diinstal secara otomatis yang tidak lagi diperlukan. Tidak benar untuk mencantumkan nama paket setelah autoremove
; mereka akan diabaikan (dan semua paket yang memenuhi syarat akan dihapus), yang mungkin bukan yang Anda inginkan.--purge
menyebabkan file konfigurasi seluruh sistem yang terkait dengan paket yang dihapus juga dihapus. Itu harus disertai dengan perintah, seperti remove
atau autoremove
. The --purge
bendera memodifikasi aksi perintah; itu tidak bertindak sendiri.purge
berarti hal yang sama dengan --purge remove
(yang sama dengan remove --purge
). Tidak benar mengatakan purge
dua kali; yang kedua purge
ditafsirkan sebagai nama paket yang akan purge
d, yang mungkin bukan yang Anda inginkan.Untuk memahami apa yang dilakukan perintah-perintah itu dan bagaimana mereka berbeda, ada baiknya (dan mungkin bahkan penting) untuk memahami dua konsep:
Paket yang diinstal dapat diinstal secara manual atau otomatis .
Ketika Anda menentukan paket untuk instalasi, dan itu diinstal, itu diinstal secara manual .
Tetapi paket lain juga dapat diinstal. Sebagian besar paket memiliki dependensi - paket lain yang harus diinstal, agar paket tersebut berfungsi sebagaimana dimaksud. Ketika Anda menginstal sebuah paket, dependensinya (yaitu, paket lain yang bergantung padanya) diinstal, kecuali yang sudah diinstal sebelumnya.
Ketika sebuah paket tidak ditentukan oleh Anda untuk diinstal, tetapi sebaliknya diinstal sebagai ketergantungan dari paket yang Anda tentukan untuk diinstal, paket itu secara otomatis diinstal.
Harap dicatat bahwa ketika Anda memiliki dua paket diinstal dan salah satunya adalah ketergantungan yang lain, itu tidak berarti ketergantungan diinstal secara otomatis. Kemungkinan dependensi diinstal secara manual (mis. Ditentukan oleh Anda, misalnya, diinstal sebelum atau bersamaan dengan paket yang bergantung padanya).
Akhirnya:
apt-mark
perintah), tidak peduli bagaimana atau dalam keadaan apa mereka benar-benar diinstal.Biasanya, untuk setiap paket yang diinstal secara otomatis, Anda akan memiliki setidaknya satu paket yang diinstal secara manual yang bergantung padanya (dan yang menyebabkannya diinstal secara otomatis). Namun, jika Anda kemudian menghapus semua paket yang diinstal secara manual yang bergantung pada paket yang diinstal secara otomatis, paket yang diinstal secara otomatis tidak lagi diperlukan, tetapi masih akan diinstal.
apt-get autoremove
menghapus paket yang diinstal secara otomatis yang tidak lagi memiliki paket yang diinstal secara manual tergantung pada mereka.
Paket menyediakan file yang dimaksudkan untuk, dan untuk tetap, sama di setiap sistem tempat versi paket itu diinstal. File tersebut menyediakan file yang dapat dieksekusi, sumber daya, dokumentasi, dan "aset" lainnya untuk program yang diinstal. Kami biasanya menyebut ini "file" yang disediakan paket.
Tetapi sebuah paket menyediakan file lain juga, yang dimaksudkan untuk (mungkin) diubah. Ini disebut file konfigurasi global (atau seluruh sistem). Mereka hampir selalu diinstal di /etc
direktori, dan mereka dapat secara otomatis dan manual dimodifikasi untuk mengubah perilaku program yang diinstal. Misalnya, sudo
memiliki file konfigurasi /etc/sudoers
, dan direktori untuk file konfigurasi lainnya /etc/sudoers.d
. File itu, dan file apa pun yang ditambahkan ke direktori itu, menentukan siapa yang diizinkan untuk menggunakan sudo
cara apa.
Biasanya diinginkan untuk menghapus instalan sebuah paket dan kemudian menginstalnya kembali tidak boleh mengubah cara perilakunya (kecuali file paketnya rusak dan itu sebabnya Anda menginstalnya kembali, tentu saja). Oleh karena itu, biasanya ketika sebuah paket dihapus, file paketnya dihapus tetapi file konfigurasi seluruh sistemnya tidak tersentuh.
Ketika Anda menghapus paket tanpa menentukan bahwa file konfigurasi seluruh sistemnya juga seharusnya dihapus, itu disebut "menghapus" paket.
Jika Anda juga ingin menghapus file konfigurasi sistem secara keseluruhan paket ketika Anda menghapus paket, itu disebut "membersihkan" paket.
apt-get remove
akan menghapus paket; yaitu, ia akan menghapus paket tetapi meninggalkan file konfigurasi sistem secara keseluruhan.
apt-get purge
akan membersihkan paket; yaitu, ia akan menghapus paket dan juga memastikan untuk menghapus file konfigurasi sistem secara keseluruhan.
Cara lain untuk membersihkan paket adalah dengan menggunakan --purge
flag. Itu tidak mengatakan apt-get
apa yang harus dilakukan; sebagai gantinya, ia memodifikasi istilah apa (atau "perintah") seperti remove
menyuruhnya melakukannya. The --purge
flag menyebabkan setiap uninstallations paket harus disertai dengan penghapusan file konfigurasi systemwide untuk paket (s) yang dihapus. Dengan kata lain, --purge
bendera mengubah penghapusan menjadi pembersihan.
Mengapa kita memiliki --purge
bendera ketika kita memiliki purge
perintah? Lagi pula, tidak sudo apt-get --purge remove packagename
setara dengan sudo apt-get purge packagename
. Mereka setara. Dimana --purge
berguna yaitu ketika Anda ingin mengubah perilaku perintah lain dari remove
.
Misalnya, Anda ingin menghapus instalasi paket yang diinstal secara otomatis yang tidak lagi diperlukan (karena tidak ada lagi paket yang diinstal secara manual tergantung pada paket tersebut), tetapi Anda tidak hanya ingin menghapus paket yang diinstal secara otomatis ini, Anda juga ingin menghapus file konfigurasi seluruh sistem mereka. Maka Anda dapat menjalankan:
sudo apt-get --purge autoremove
Mari pertimbangkan satu lagi penggunaan --purge
. Ada bendera yang disebut --reinstall
, yang mengubah instalasi menjadi instalasi ulang. Ini untuk mengatakan bahwa, biasanya, ketika Anda mencoba untuk menginstal paket yang sudah diinstal, entah tidak akan terjadi apa-apa, atau (jika paket ditandai secara otomatis diinstal) paket akan ditandai secara manual diinstal. Tetapi dengan --reinstall
flag tersebut, menginstal paket yang sudah diinstal menyebabkannya dihapus dan kemudian diinstal kembali :
sudo apt-get --reinstall install packagename
Tapi misalkan Anda ingin menghapus file konfigurasi seluruh sistem dari paket yang Anda instal ulang. Ini agak umum; ketika sebuah paket tidak berfungsi dan Anda tidak tahu mengapa, Anda dapat mencoba menginstalnya kembali, dan juga menghapus file konfigurasinya sehingga konfigurasinya diatur ulang ke default. Untuk mencapai ini, Anda dapat menjalankan:
sudo apt-get --purge --reinstall install packagename
The --reinstall
bergantian instalasi ke instalasi ulang (yaitu, penghapusan diikuti oleh instalasi), dan --purge
ternyata bagian penghapusan instalasi ulang ke pembersihan.
Sekarang harus jelas apa yang masing-masing apt-get
perintah contoh Anda lakukan:
sudo apt-get autoremove --purge packagenames
Pembersihan ini secara otomatis menginstal paket yang tidak lagi memiliki paket yang diinstal secara manual yang bergantung padanya. Yaitu, itu menghapus instalasi paket-paket (yang mengharuskan menghapus file paket mereka), dan itu menghapus file konfigurasi seluruh sistem mereka juga.
Di sini, packagenames
tidak melakukan apa pun. Secara khusus, jika Anda bermaksud untuk hanya menghapus paket yang namanya terdaftar di sana, maka ini tidak akan berlaku seperti yang Anda inginkan.
sudo apt-get remove --purge packagenames
Ini membersihkan packagenames
; dengan asumsi packagenames
adalah daftar nama paket yang dipisahkan oleh spasi, itu akan membersihkan semuanya. Yaitu, itu akan menghapus instalan mereka (yang berarti menghapus file paket mereka), dan juga akan menghapus file konfigurasi sistem mereka.
Jika salah satu paket yang terdaftar di packagenames
tidak diinstal, keberadaannya dalam daftar tidak akan berpengaruh (kecuali bahwa Anda akan diberitahu itu tidak diinstal). Jika Anda mencantumkan nama paket yang bukan nama paket aktual, perintah akan gagal dengan kesalahan.unable to locate packagename
sudo apt-get purge purge packagenmaes
Jika Anda menghapus salah satu kemunculan purge
dalam perintah itu, itu akan sama dengan yang sebelumnya. Seperti berdiri, ia mencoba untuk membersihkan paket yang disebut purge
, dan juga untuk membersihkan paket yang terdaftar di packagenames
. Karena purge
bukan nama paket apa pun, itu akan gagal dengan pesan kesalahan.
sudo apt-get remove packagenames
Ini menghapus paket yang terdaftar di packagenames
, yang mengharuskan menghapus file paket mereka. Ini tidak menghapus file konfigurasi seluruh sistem mereka (karena itu hanya penghapusan, bukan pembersihan).
sudo apt-get autoremove
Mencopot pemasangan ini secara otomatis menginstal paket yang tidak lagi memiliki paket yang diinstal secara manual yang bergantung padanya. Ini berarti menghapus file paket mereka, tetapi bukan file konfigurasi sistem mereka (yaitu, itu adalah penghapusan tetapi bukan pembersihan).
Untuk informasi lebih lanjut tentang cara menggunakan apt-get
, saya sarankan halaman manualnya . Untuk informasi yang lebih umum, lihat panduan ini .