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 simple / la plus sûre pour s'en débarrasser?
Je ne recommande pas d'exécuter sudo apt-get purge php*
.
C'était effrayant! Heureusement, je n'ai pas tapé l'option -y
, car elle a choisi une centaine de paquets sans php
dans leur nom.
sudo apt-get purge 'dpkg -l | grep php| awk '{print }' |tr "\n" " "'
Comment ça marche:
D'abord , une liste de packages est générée à l'aide de cette série de commandes: dpkg -l | grep php| awk '{print }' |tr "\n" " "
.
Indice: 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, en supprimant tous les packages.
Indice: Si cela vous semble plus sûr, vous pouvez tout aussi bien les exécuter séparément, et copier + coller la liste des paquets à supprimer comme suit: sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json
Vous voudrez probablement purger tous les paquets php * de votre système. Quelque chose avec une joker devrait fonctionner
sudo apt-get purge php.*
Comment revenir à PHP 5.2 peut vous intéresser pour savoir où aller ensuite.
Premièrement, 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
et ensuite:
sudo rm -rf /etc/apache2; rm -rf /etc/php5; rm -rf /var/lib/mysql; rm etc/mysql
Si vous rencontrez des problèmes avec phpMyAdmin, essayez d’entrer ce message dans le terminal:
dpkg-reconfigure phpmyadmin
En plus des purges mentionnées dans les autres réponses, si vous voulez vous assurer que tout est supprimé, vous voudrez probablement courir
cd /
sudo find -name "php"
Qui vous montrera les 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
Supprimez-les comme il convient. Veillez à ne pas supprimer tout élément critique pour un autre processus que vous devez continuer à exécuter, à moins que vous ne souhaitiez le réinstaller également.
Pour supprimer un répertoire ou un fichier, nous utilisons le commentaire rm
avec l’indicateur -rf
, donc avec l’exemple ci-dessus, nous tapons:
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
Dans votre cas, vous pouvez rechercher tous les paquets:
sudo aptitude search php5|awk {'print '}|grep -v i386|grep -v "^A"|tr "\n" " "
puis purgez-les:
sudo apt-get purge <list of packages found>
Le regex dit les deux personnes est incorrect.
Au lieu d'utiliser php.*
ou php*
One devrait utiliser ^php*
C'est la bonne réponse.
Donc, vous utiliseriez: sudo apt-get purge "^php*"
Bien que je ne recommande pas l’utilisation de cette méthode, elle est fortement automatisée et je vous encourage à utiliser sudo apt list --installed | grep php
pour obtenir la liste des paquets et à utiliser ces noms de paquets de la commande ci-dessus dans cette commande:
sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO
Lire d'autres questions sur les étiquettes package-management php