Comment faire pour supprimer complètement PHP?


58

Je dois nettoyer mon serveur des paquets PHP 5.3 (il y en a beaucoup) pour pouvoir compiler PHP 5.2. Quelle est la méthode la plus facile / la plus sûre pour se débarrasser de tous?

Réponses:


88

Cela devrait supprimer complètement tous les paquets dont le nom commence par phpet tout ce qui y est associé.

sudo apt-get purge 'php*'

OK merci à vous deux. Je viens de choisir votre réponse car Marco ne semble pas manquer de Karma :)
corev

D'accord, des idées sur la meilleure façon d'installer PHP 5.2 maintenant?
Corev

6
Cette commande exacte vient d'effacer TOUS les paquets de mon système. Je ne conseille à personne de l'utiliser jamais.
Caballero

13
php*le traitera comme une regex, et tous les paquets phen son nom seront supprimés.
Muru

4
Suis-je le seul à penser que ce n'est pas vraiment une idée sûre?
Daan

67

Je ne recommande pas de courir sudo apt-get purge php*.

C'était effrayant! Heureusement, je n'ai pas tapé l' -yoption, car elle a choisi une centaine de paquets sans phpleur nom.

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

Comment ça fonctionne:

Tout d' abord , une liste de paquets est générée à l' aide de cette série de commandes: dpkg -l | grep php| awk '{print $2}' |tr "\n" " ".

Astuce: Vous pouvez exécuter cette partie de la commande dans votre terminal pour voir quels paquets seraient supprimés. Vous devriez obtenir quelque chose comme: libapache2-mod-php5 php5 php5-cli php5-common php5-json

Enfin , lorsque vous exécutez la commande complète, cette liste de packages est transmise à sudo apt-get purge, ce qui supprime tous les packages.

Astuce: Si cela vous semble plus sûr, vous pouvez tout aussi facilement les exécuter séparément et copier / coller la liste des paquets à supprimer de la manière suivante:sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json


3
Cela devrait être la réponse acceptée
Dark Star1

1
On dirait que vous suggérez qu'une syntaxe est mauvaise parce que trop large, mais est-ce que cela vous dérange d'expliquer ce que fait votre commande, afin que les gens puissent juger si c'est approprié avant de l'exécuter?
Vince

2
Que faire si aptituden'est pas installé ou ne peut pas être installé sur Ubuntu, qu'en est-il de la apt-get cacherecherche?
Vicky Dev

17

Vous voudrez probablement purger tous les paquets php * de votre système. Quelque chose avec un joker devrait fonctionner

sudo apt-get purge php.*

Vous pouvez être intéressé par Comment rollback à PHP 5.2 pour savoir où aller.


5
php*le traitera comme une regex, et tous les paquets phen son nom seront supprimés.
muru

3

Tout d'abord, vous devez supprimer Apache et toutes ses dépendances avec:

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

puis:

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

Si vous avez des problèmes avec phpMyAdmin, essayez d'entrer ceci dans le terminal:

dpkg-reconfigure phpmyadmin

*** Remarque pour ceux qui copient-collent sans lire attentivement, cela supprimera également Apache, ce qui n'est pas ce que demande OP
Adavea

2
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

Dans votre cas, vous pouvez rechercher tous les packages:

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

puis les purger:

sudo apt-get purge <list of packages found>

aptituden'est pas installé sur mon système (16.04)
kleinfreund

Si vous souhaitez installer aptitude, vous pouvez le faire en tapantsudo apt-get install aptitude
Just In Time Berlake

2

En plus des purges mentionnées dans les autres réponses, si vous voulez être absolument sûr que tout est supprimé, vous voudrez probablement exécuter

cd /
sudo find -name "php"

Qui va vous montrer des fichiers / dossiers avec le nom php en eux. Vous allez ensuite vouloir vérifier chacun de ces chemins de fichiers, à savoir:

cd /usr/local/include/php
ls

Et supprimez-les comme il convient. Veillez à ne pas supprimer tout élément essentiel à un autre processus que vous devez continuer à exécuter, sauf si vous souhaitez également le réinstaller.

Pour supprimer un répertoire ou un fichier, nous utilisons le rmcommentaire avec l' -rfindicateur. Ainsi, à l'aide de l' exemple ci-dessus, nous tapons:

sudo rm -rf /usr/local/include/php

1

La regex que les deux personnes ont dite est incorrecte.
Au lieu d'utiliser php.*ou php*On devrait utiliser^php*

Thats la bonne réponse.
Donc, vous utiliseriez:sudo apt-get purge "^php*"

Bien que je ne recommande pas d'utiliser cette méthode car elle est hautement automatisée, je vous encourage à utiliser cette commande sudo apt list --installed | grep phppour obtenir la liste des paquets et utiliser les noms de paquets que vous avez obtenus à partir de la commande ci-dessus:

sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO


Cela ne supprime pas libapache2-mod-php, par exemple.
Patrick B.

@ PatrickB. Donc, vous devez utiliser les deux ^php*etphp*
AmirHossein

Mais php.*couvrira également les cas où phpapparaît au début du nom du paquet. Il n'y a aucune raison d'utiliser les deux ^php*et php.*aussi, cela devrait être ^php.*; apt-get semble savoir que php*c'est un glob, pas une regex, mais lorsque vous ajoutez le ^caractère, il ne peut pas s'agir d'un glob, vous obtiendrez ainsi tous les paquets commençant par "ph".
Patrick B.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.