Câu trả lời:
Điều này sẽ loại bỏ hoàn toàn bất kỳ gói có tên bắt đầu php
và bất cứ điều gì liên quan đến nó.
sudo apt-get purge 'php*'
php*
sẽ làm cho nó được coi là một biểu thức chính quy và bao giờ gói có ph
tên của nó sẽ bị xóa.
Tôi không khuyên bạn nên chạy sudo apt-get purge php*
.
Điều đó thật đáng sợ! May mắn thay, tôi đã không gõ -y
tùy chọn này, vì nó đã chọn khoảng hàng trăm gói mà không có php
tên của chúng.
sudo apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
Làm thế nào nó hoạt động:
Đầu tiên , một danh sách các gói được tạo bằng chuỗi lệnh này : dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
.
Gợi ý: Bạn có thể chạy phần này của lệnh trong thiết bị đầu cuối của mình để xem gói nào sẽ bị xóa. Bạn sẽ nhận được một cái gì đó như:
libapache2-mod-php5 php5 php5-cli php5-common php5-json
Cuối cùng , khi bạn chạy lệnh đầy đủ, danh sách các gói này được chuyển đến sudo apt-get purge, loại bỏ tất cả các gói.
Gợi ý: Nếu cảm thấy an toàn hơn với bạn, bạn có thể dễ dàng chạy chúng một cách dễ dàng và sao chép + dán danh sách các gói để xóa như vậy:sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json
aptitude
không được cài đặt hoặc không thể được cài đặt trên Ubuntu, làm thế nào về apt-get cache
tìm kiếm?
Bạn có thể muốn thanh lọc tất cả các gói php * khỏi hệ thống của bạn. Một cái gì đó với một thẻ hoang dã nên làm việc
sudo apt-get purge php.*
Bạn có thể quan tâm Làm thế nào để quay trở lại PHP 5.2 để biết nơi tiếp theo.
php*
sẽ làm cho nó được coi là một biểu thức chính quy và bao giờ gói có ph
tên của nó sẽ bị xóa.
Đầu tiên, bạn phải loại bỏ Apache và tất cả các phụ thuộc của nó với:
sudo apt-get purge apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
và sau đó:
sudo rm -rf /etc/apache2; rm -rf /etc/php5; rm -rf /var/lib/mysql; rm etc/mysql
Nếu bạn có bất kỳ vấn đề nào với phpMyAdmin, hãy thử nhập vấn đề này vào Terminal:
dpkg-reconfigure phpmyadmin
sudo apt-get -y purge libapache2-mod-php5 libapache2-mod-php5filter libexpect-php5 libgv-php5 libow-php5 php5 php5-adodb php5-auth-pam php5-cgi php5-cli php5-common php5-curl php5-dbg php5-enchant php5-exactimage php5-ffmpeg php5-fpm php5-geoip php5-gmp php5-idn php5-imagick php5-imap php5-interbase php5-intl php5-json php5-lasso php5-ldap php5-librdf php5-mapscript php5-memcache php5-memcached php5-mhash php5-midgard2 php5-ming php5-mssql php5-mysql php5-mysqlnd php5-odbc php5-pgsql php5-ps php5-pspell php5-radius php5-recode php5-remctl php5-rrd php5-sasl php5-snmp php5-sqlite php5-suhosin php5-svn php5-sybase php5-tidy php5-tokyo-tyrant php5-uuid php5-xcache php5-xdebug php5-xmlrpc php5-xsl
Trong trường hợp của bạn, bạn có thể tìm kiếm tất cả các gói:
sudo aptitude search php5|awk {'print $2'}|grep -v i386|grep -v "^A"|tr "\n" " "
và sau đó thanh trừng chúng:
sudo apt-get purge <list of packages found>
aptitude
không được cài đặt trên hệ thống của tôi (16.04)
sudo apt-get install aptitude
Ngoài bất kỳ cuộc thanh trừng nào được đề cập trong các câu trả lời khác, nếu bạn muốn hoàn toàn chắc chắn mọi thứ đã được xóa, bạn có thể muốn chạy
cd /
sudo find -name "php"
Nó sẽ hiển thị cho bạn các tệp / thư mục có tên php trong đó. Sau đó, bạn sẽ muốn kiểm tra từng đường dẫn tệp này, nghĩa là:
cd /usr/local/include/php
ls
Và xóa chúng khi thích hợp. Tuy nhiên, hãy cẩn thận để không xóa bất cứ điều gì quan trọng đối với quá trình khác mà bạn cần tiếp tục chạy, trừ khi bạn cũng muốn phải cài đặt lại.
Để xóa thư mục hoặc tệp, chúng tôi sử dụng rm
nhận xét với -rf
cờ, do đó, với ví dụ trên, chúng tôi sẽ gõ:
sudo rm -rf /usr/local/include/php
Regex hai người nói không chính xác.
Thay vì sử dụng php.*
hoặc php*
Một nên sử dụng^php*
Đó là câu trả lời đúng.
Vì vậy, bạn sẽ sử dụng:sudo apt-get purge "^php*"
Mặc dù tôi không khuyên bạn nên sử dụng phương pháp này vì nó rất tự động và tôi khuyến khích bạn sử dụng sudo apt list --installed | grep php
để lấy danh sách các gói và sử dụng các tên gói mà bạn nhận được từ lệnh trên trong lệnh này:
sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO
^php*
vàphp*
php.*
cũng sẽ bao gồm các trường hợp php
xuất hiện ở đầu tên gói. Không có lý do để sử dụng cả hai ^php*
và php.*
Ngoài ra, nó nên được ^php.*
; apt-get dường như biết rằng đó php*
là một quả địa cầu, không phải là một biểu thức chính quy, nhưng khi bạn thêm ^
ký tự đó không thể là một quả địa cầu, vì vậy bạn sẽ nhận được mọi gói bắt đầu bằng "ph."