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

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

1
задан 12 August 2016 в 21:04

6 ответов

Я не рекомендую запускать 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" " ".

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

Наконец, когда вы запустите полную команду, этот список пакетов будет передан в sudo apt-get purge, удалив все пакеты.

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

45
ответ дан 25 May 2018 в 19:00
  • 1
    Это должен быть принятый ответ – Dark Star1 5 August 2014 в 02:28
  • 2
    Похоже, вы утверждаете, что один синтаксис плох, потому что слишком широкий, но не возражаете ли вы объяснить, что делает ваша команда, чтобы люди могли судить, подходит ли это до запуска? – Vince 12 May 2015 в 22:24
  • 3
    Что делать, если aptitude не установлен или не может быть установлен на Ubuntu, как насчет поиска apt-get cache? – Vicky Dev 27 April 2016 в 14:30

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

sudo apt-get purge php.*

Вам может быть интересно, как откат к PHP 5.2 для дальнейшего перехода.

16
ответ дан 25 May 2018 в 19:00
  • 1
    php* будет обрабатываться как регулярное выражение, и когда-либо пакет с ph в его имени будет удален. – muru 28 October 2014 в 23:05

Сначала вам нужно удалить 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
2
ответ дан 25 May 2018 в 19:00
  • 1
    *** Обратите внимание на тех, кто скопирует-вставляет, не читая внимательно, это также удалит apache, что не является тем, о чем попросил OP – adavea 16 April 2018 в 17:01

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

cd /
sudo find -name "php"

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

cd /usr/local/include/php
ls

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

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

sudo rm -rf /usr/local/include/php
2
ответ дан 25 May 2018 в 19:00
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>
1
ответ дан 25 May 2018 в 19:00
  • 1
    aptitude не установлена ​​в моей системе (16.04) – kleinfreund 12 December 2016 в 13:03
  • 2
    Если вы хотите установить aptitude, вы можете сделать это, набрав sudo apt-get install aptitude – Just In Time Berlake 12 January 2017 в 21:00

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

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

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

sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO

1
ответ дан 25 May 2018 в 19:00

Другие вопросы по тегам:

Похожие вопросы: