Xóa vĩnh viễn apache2


109

Có vẻ như một đơn giản apt-get remove apache2không hoàn toàn loại bỏ apache2vì tôi vẫn có thể thấy nó trên một trong các quy trình khi chạy top. Làm thế nào để loại bỏ apache2hoàn toàn trên máy chủ Ubuntu của mình?

Nó thực sự không bị xóa:

~# 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

Nhưng khi tôi làm apt-get remove apache2lại:

# 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.

3
chạy apt-get purge apache2. Nó sẽ loại bỏ tất cả các tập tin cấu hình.
Manula Waidyanatha

Tôi đã làm theo apt-get autoremovevà sau đósudo rm -rf /etc/apache2
Matthew Hegarty

Câu trả lời:


153

apache2là một siêu dữ liệu chỉ cần chọn các gói khác. Nếu bạn đã cài đặt apache bằng cách cài đặt gói đó, bạn chỉ cần chạy nó để dọn sạch các gói được chọn tự động:

sudo apt autoremove

Nếu điều đó không làm việc, bạn có thể đã cài đặt một trong những người phụ thuộc bằng tay. Bạn có thể nhắm mục tiêu tất cả các apache2-gói từ không gian và nuke rất nhiều:

sudo apt remove apache2.*

Để tham khảo trong tương lai, để tìm hiểu gói nhị phân đến từ đâu, bạn có thể chạy gói này:

dpkg -S `which apache2`

Tôi hy vọng điều đó sẽ quay trở lại apache2.2-bin(tại thời điểm viết bài).


6
đồng thời, sử dụng --purge nếu bạn cũng muốn xóa các tệp cấu hình: apt-get
--purge

1
Lệnh đầu ra cuối cùngapache2-mpm-prefork: /usr/sbin/apache2
Jürgen Paul

1
@Severus đủ công bằng - Tôi chỉ đoán nhưng điều đó có ý nghĩa. Vâng, tôi chỉ sử dụng ký tự đại diện nhưng chú ý đến những gì nó sẽ xóa. apache2-common được sử dụng bởi một số công cụ không phải là apache2 httpd, do đó bạn có thể cần phải cài đặt lại một số thứ sau đó.
Oli

@Oli Xóa mọi thứ bằng regex 'apache2 *' rất nguy hiểm, vô số thứ sẽ bị xóa
jhbsk

1
@jasdeepkhalsa Nó không "nguy hiểm". apt-get(không giống như apt-cache) giới hạn các tìm kiếm của nó chỉ ở các tên để nó không quá xa. Mọi thứ nó thu được đều phụ thuộc vào Apache hoặc Apache. Tự kiểm tra vớiapt-get -s remove apache2*
Oli

67

Thực hiện theo các bước sau để xóa apache2dịch vụ bằng cách sử dụng Terminal:

  1. Trước tiên hãy dừng dịch vụ apache2 nếu nó đang chạy với: sudo service apache2 stop
  2. Bây giờ loại bỏ và dọn sạch tất cả các gói apache2 với:

    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. Cuối cùng, chạy sudo apt-get autoremovechỉ trong trường hợp cần dọn dẹp khác

Bạn có thể thực hiện hai bài kiểm tra sau để xác nhận apache đã bị xóa:

  1. which apache2 - nên trả về một dòng trống
  2. sudo service apache2 start - nên trở về apache2: unrecognized service

4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson 7/11/17

hoạt động hoàn hảo đối với tôi
Nechtan

44

Một cách rất đơn giản và dễ hiểu đã làm việc cho tôi như sau:

  1. Ngừng apache2.

    sudo service apache2 stop
    
  2. Gỡ cài đặt Apache2 và các gói phụ thuộc của nó.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Sử dụng tùy chọn autoremove để loại bỏ các phụ thuộc khác.

    sudo apt-get autoremove
    
  4. Kiểm tra xem có tập tin cấu hình nào chưa bị xóa không.

    whereis apache2
    
  5. Nếu bạn nhận được phản hồi như sau, hãy apache2: /etc/apache2xóa thư mục và các tệp cấu hình hiện có.

    sudo rm -rf /etc/apache2  
    

Nguồn: Cách gỡ cài đặt và xóa Apache2 trên Ubuntu hoặc Debian bởi Dan Nanni


1
Đối với tôi đó là: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson 7/11/17

2

Trước tiên hãy kiểm tra xem bạn có đang sử dụng đúng tên gói không, tên gói chính xác của IMO là: apache2.x-common

Nếu bạn muốn loại bỏ hoàn toàn gói bao gồm các tệp cấu hình, hãy thử:

    dpkg --purge apache2.2-common

1

Hãy dành thời gian để kiểm tra xem bạn có đang sử dụng gói khác nhau apache2.2-bincho Ubuntu 16.04 không, mới nhất làapache2.4-bin

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


-1

Không có lời khuyên trên các trang web này làm việc cho tôi. Tôi đã buộc phải làm điều này ...

apt-get remove --purge php* libapache2* apache2*

@Melebius - Đúng. Nhưng bạn luôn có thể cài đặt lại giống như bạn có thể cài đặt lại Apache. Khi máy chủ web của bạn không hoạt động và 100 khách hàng đang gọi cho bạn để yêu cầu cập nhật, đây là việc bạn sẽ làm. Hy vọng bạn có một bản sao lưu của thư mục cấu hình php của bạn.
SamTzu

Nếu câu hỏi yêu cầu loại bỏ Apache, một câu trả lời không nên loại bỏ PHP như một hiệu ứng phụ, hơn nữa, mà không có bất kỳ thông báo nào. Mặc dù PHP chủ yếu được sử dụng cùng với Apache, nhưng nó cũng có thể được sử dụng ở những nơi khác trong hệ thống. Mặt khác, có thể có các trình thông dịch khác được sử dụng với Apache, ví dụ: hành khách (Ruby on rails). Tại sao bạn không loại bỏ những thứ này?
Melebius

@Malebius - Tất nhiên là vậy nếu bạn không thể xóa hoàn toàn mọi thứ liên quan đến Apache mà không có nó. Đặc biệt là nếu bạn không thể cài đặt lại Apache hoạt động mà không xóa PHP trước. Tôi đã không tạo ra mớ hỗn độn này nhưng tôi thường có thể điều hướng theo cách của mình xung quanh nó. - Sam
SamTzu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.