Menghapus apache2 secara permanen

109

Sepertinya yang sederhana apt-get remove apache2tidak sepenuhnya menghapus apache2karena saya masih bisa melihatnya di salah satu proses saat berjalan top. Bagaimana cara menghapus apache2sepenuhnya di server ubuntu?

Memang tidak dihapus:

~# which apache2
/usr/sbin/apache2
~# whereis apache2
apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz

Tetapi ketika saya melakukannya apt-get remove apache2lagi:

# apt-get remove apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package apache2 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Jürgen Paul
sumber
3
lari apt-get purge apache2. Ini akan menghapus semua file konfigurasi.
Manula Waidyanatha
Saya mengikuti ini dengan apt-get autoremovedan kemudiansudo rm -rf /etc/apache2
Matius Hegarty

Jawaban:

153

apache2adalah metapackage yang hanya memilih paket lain. Jika Anda menginstal apache dengan menginstal paket itu, Anda hanya perlu menjalankan ini untuk membersihkan paket yang dipilih secara otomatis:

sudo apt autoremove

Jika itu tidak berhasil, Anda mungkin telah menginstal salah satu tanggungan secara manual. Anda dapat menargetkan semua apache2-paket dari luar angkasa dan menghapus banyak:

sudo apt remove apache2.*

Untuk referensi di masa mendatang, untuk mengetahui dari mana paket biner berasal, Anda dapat menjalankan ini:

dpkg -S `which apache2`

Saya berharap untuk kembali dengan apache2.2-bin(pada saat penulisan).

Oli
sumber
6
juga, gunakan --purge jika Anda ingin file konfigurasi dihapus juga: apt-get --purge hapus apache2
xyious
1
Output perintah terakhirapache2-mpm-prefork: /usr/sbin/apache2
Jürgen Paul
1
@ Anyus cukup adil - Saya hanya menebak tapi itu masuk akal. Ya saya hanya menggunakan wildcard tetapi tertarik pada apa yang akan dihapus. apache2-common digunakan oleh beberapa alat yang bukan httpd apache2 sehingga Anda mungkin perlu menginstal ulang beberapa hal setelahnya.
Oli
@Oli Menghapus sesuatu dengan regex 'apache2 *' berbahaya, banyak hal yang akhirnya dihapus
jhbsk
1
@jasdeepkhalsa Ini tidak "berbahaya". apt-get(tidak seperti apt-cache) membatasi pencariannya hanya untuk nama saja sehingga tidak terlalu jauh jangkauannya. Semua yang ditangkap adalah bergantung pada Apache atau Apache. Periksa sendiri denganapt-get -s remove apache2*
Oli
67

Ikuti langkah-langkah ini untuk menghapus apache2layanan menggunakan Terminal:

  1. Pertama-tama hentikan layanan apache2 jika sedang berjalan dengan: sudo service apache2 stop
  2. Sekarang hapus dan bersihkan semua paket apache2 dengan:

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    //or 
    sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
    
  3. Akhirnya, jalankan sudo apt-get autoremovekalau-kalau ada pembersihan lain yang diperlukan

Anda dapat melakukan dua tes berikut untuk mengonfirmasi apache telah dihapus:

  1. which apache2 - harus mengembalikan garis kosong
  2. sudo service apache2 start - harus kembali apache2: unrecognized service
jhbsk
sumber
4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
berfungsi sempurna untuk saya
Nechtan
44

Cara yang sangat sederhana dan langsung yang bekerja untuk saya adalah sebagai berikut:

  1. Hentikan apache2.

    sudo service apache2 stop
    
  2. Hapus instalan Apache2 dan paket ketergantungannya.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Gunakan opsi autoremove untuk menghilangkan dependensi lainnya.

    sudo apt-get autoremove
    
  4. Periksa apakah ada file konfigurasi yang belum dihapus.

    whereis apache2
    
  5. Jika Anda mendapat respons sebagai berikut, apache2: /etc/apache2hapus direktori dan file konfigurasi yang ada.

    sudo rm -rf /etc/apache2  
    

Sumber: Cara menghapus dan menghapus Apache2 di Ubuntu atau Debian oleh Dan Nanni

Chris S
sumber
1
Bagi saya itu adalah: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
2

Pertama periksa apakah Anda menggunakan nama paket yang benar, nama paket yang benar IMO adalah: apache2.x-common

Jika Anda ingin menghapus paket sepenuhnya termasuk file konfigurasi lalu coba:

    dpkg --purge apache2.2-common
Penjualan Amol
sumber
1

Luangkan waktu untuk memeriksa apakah Anda menggunakan paket berbeda apache2.2-binuntuk Ubuntu 16.04 yang terbaruapache2.4-bin

sudo apt-get purge apache2 apache2-utils apache2.4-bin apache2.4-common

Emma
sumber
-1

Tidak ada saran di situs ini yang berfungsi untuk saya. Saya terpaksa melakukan ini ...

apt-get remove --purge php* libapache2* apache2*
SamTzu
sumber
@Melebius - Benar. Tetapi Anda selalu dapat menginstal ulang seperti halnya Anda dapat menginstal ulang Apache. Ketika server web Anda sedang down dan 100 klien memanggil Anda untuk meminta pembaruan, inilah yang akhirnya Anda lakukan. Semoga Anda memiliki cadangan folder konfigurasi php Anda.
SamTzu
Jika pertanyaannya meminta untuk menghapus Apache, sebuah jawaban seharusnya tidak menghapus PHP sebagai efek samping, apalagi, tanpa pemberitahuan. Meskipun PHP sebagian besar digunakan bersama dengan Apache, mungkin juga digunakan di tempat lain dalam sistem. Di sisi lain, mungkin ada penerjemah lain yang digunakan dengan Apache, misalnya penumpang (Ruby on rails). Mengapa Anda tidak menghapus ini?
Melebius
@ Malebius - Tentu saja jika Anda tidak dapat sepenuhnya menghapus semua yang terkait dengan Apache tanpa itu. Terutama jika Anda tidak dapat menginstal ulang Apache yang berfungsi tanpa terlebih dahulu menghapus PHP. Saya tidak membuat kekacauan ini tetapi saya biasanya dapat menavigasi jalan saya di sekitarnya. - Sam
SamTzu