Как полностью удалить PHP?

Мне нужно очистить свой сервер от пакетов PHP 5.3 (их много), чтобы иметь возможность скомпилировать PHP 5.2. Какой самый простой / безопасный способ избавиться от них всех?

Этот метод не рекомендуется использовать без тщательного изучения. Читайте комментарии ниже.


Это должно полностью удалить любой пакет с именем, начинающимся с php и все, что с этим связано.

sudo apt-get purge 'php*'

НЕ НАЖИМАЙ y ПОКА ВЫ НЕ УБЕДИТЕСЬ, ЧТО что в списке удаляемых пакетов нет других пакетов (кроме связанных с пакетами php), таких как:

php-common* python-openssl* php-curl* ... и тонны посылок

Если да, введите n, скопируйте список (и очистите от несвязанных пакетов) и удалите их вручную:

sudo apt-get purge      php-common* php-curl*    ... and tons of packages

Я не рекомендую запустить sudo apt-get purge php*.

Это было страшно! К счастью, я не набрал -y вариант, потому что он выбрал около сотни пакетов без php от их имени.

sudo apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

Как это работает:

Первый, список пакетов генерируется с помощью этой серии команд: dpkg -l | grep php| awk '{print $2}' |tr "\n" " ".

Подсказка: Вы можете запустить эту часть команды в своем терминале, чтобы посмотреть, какие пакеты будут удалены. Вы должны получить что-то вроде:libapache2-mod-php5 php5 php5-cli php5-common php5-json

Окончательно, когда вы выполняете полную команду, этот список пакетов передается в sudo apt-get purge, удаляя все пакеты.

Подсказка: Если вам кажется, что это безопаснее, вы можете так же легко запустить их отдельно и скопировать + вставить список пакетов для удаления следующим образом: sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json

Вероятно, вы захотите удалить все пакеты php* из своей системы. Что-то с подстановочной картой должно сработать

sudo apt-get purge php.*

Вас может заинтересовать Как выполнить откат к PHP 5.2 о том, куда идти дальше.

Во-первых, вы должны удалить Apache и все его зависимости с помощью:

sudo apt-get purge apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin

и затем:

sudo rm -rf /etc/apache2; rm -rf /etc/php5; rm -rf /var/lib/mysql; rm etc/mysql 

Если у вас возникли какие-либо проблемы с phpMyAdmin, попробуйте ввести это в терминал:

dpkg-reconfigure phpmyadmin

В дополнение к любым очисткам, упомянутым в других ответах, если вы хотите быть полностью уверены, что все удалено, вы, вероятно, захотите запустить

cd /sudo find -name "php"

Который покажет вам файлы / папки с именем php в них. Затем вы захотите проверить каждый из этих путей к файлам, т.е.:

cd /usr/local/include/phpls

И удалите их по мере необходимости. Однако будьте осторожны, чтобы не удалять ничего, что имеет решающее значение для другого процесса, который вам нужно продолжать запускать, если только вы не хотите, чтобы его тоже пришлось переустанавливать.

Чтобы удалить каталог или файл, мы используем rm комментарий с помощью -rf флаг, поэтому, учитывая приведенный выше пример, мы бы ввели:

sudo rm -rf /usr/local/include/php
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

В вашем случае вы могли бы выполнить поиск по всем пакетам:

sudo aptitude search php5|awk {'print $2'}|grep -v i386|grep -v "^A"|tr "\n"  " "

а затем очистите их:

sudo apt-get purge <list of packages found>

Регулярное выражение, которое сказали эти два человека, неверно.
Вместо того, чтобы использовать php.* или php* Следует использовать ^php*

Это правильный ответ.
Таким образом, вы бы использовали: sudo apt-get purge "^php*"

Хотя я не рекомендую использовать этот метод, потому что он очень автоматизирован, и я призываю вас использовать sudo apt list --installed | grep php чтобы получить список пакетов и использовать эти имена пакетов, которые вы получили из приведенной выше команды в этой команде:

sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO

apt list --installed 2>/dev/null | awk -F '/' '{print $1}' | grep '^php' | xargs -r sudo apt purge;sudo rm -rfv /etc/php/5.3;

Объяснение

apt list --installed 2>/dev/null - список установленных пакетов с указанием версии и другой информации;

apt list --installed 2>/dev/null | awk -F '/' '{print $1}' - список только имен установленных пакетов;

apt list --installed 2>/dev/null | awk -F '/' '{print $1}' | grep '^php' - список имен установленных пакетов, начинающихся только с php;

apt list --installed | awk -F '/' '{print $1}' | grep '^php' | xargs -r sudo apt purge- передавать список имен установленных пакетов, начинающихся только с php, в качестве аргументов для sudo apt purgeкоманда;

sudo rm -rfv /etc/php/5.3 - удалите все файлы конфигурации для php5.3;

При необходимости

sudo rm -rfv /etc/php/5* - удалить все конфигурационные файлы всех php5 варианты (php5.3, php5.4, php5.5 и т.д.);

sudo rm -rfv /etc/php - удалить все конфигурационные файлы всех php варианты (php5, php7 и т.д.);

Я использую sudo apt remove php8.0*Он удаляет php и все связанные с ним пакеты - для данной версии - и понижает рейтинг системы до любой другой существующей, установленной (более старой) версии php.