Ich muss meinen Server von PHP 5.3-Paketen bereinigen (es gibt viele davon), um PHP 5.2 kompilieren zu können. Was ist die einfachste / sicherste Methode, um sie alle loszuwerden?
package-management
php
corev
quelle
quelle
php*
wird als regulärer Ausdruck behandelt und jedes Paket mitph
dem Namen wird entfernt.Ich empfehle nicht zu laufen
sudo apt-get purge php*
.Das war erschreckend! Glücklicherweise habe ich die
-y
Option nicht eingegeben, da ungefähr hundert Pakete ohnephp
Namen ausgewählt wurden.Wie es funktioniert:
Zunächst wird eine Liste der Pakete erzeugt wird diese Reihe von Befehlen:
dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
.Tipp: Sie können diesen Teil des Befehls in Ihrem Terminal ausführen, um zu sehen, welche Pakete entfernt werden. Sie sollten etwas bekommen wie:
libapache2-mod-php5 php5 php5-cli php5-common php5-json
Schließlich , wenn Sie den vollständigen Befehl, diese Liste der Pakete ausgeführt wird , um sudo apt-get purge bestanden, alle Pakete zu entfernen.
Tipp: Wenn es für Sie sicherer ist, können Sie es genauso einfach separat ausführen und die Liste der zu entfernenden Pakete wie folgt kopieren und einfügen:
sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json
quelle
aptitude
es auf Ubuntu nicht installiert ist oder nicht installiert werden kannapt-get cache
?Sie werden wahrscheinlich alle PHP * -Pakete von Ihrem System entfernen wollen. Etwas mit einem Platzhalter sollte funktionieren
Vielleicht interessiert Sie auch, wie Sie ein Rollback auf PHP 5.2 durchführen, um zu erfahren, wo Sie als Nächstes vorgehen müssen.
quelle
php*
wird als regulärer Ausdruck behandelt und jedes Paket mitph
dem Namen wird entfernt.Zuerst müssen Sie Apache und all seine Abhängigkeiten entfernen mit:
und dann:
Wenn Sie Probleme mit phpMyAdmin haben, versuchen Sie Folgendes in das Terminal einzugeben:
quelle
In Ihrem Fall könnten Sie nach allen Paketen suchen:
und dann lösche sie:
quelle
aptitude
ist nicht auf meinem System installiert (16.04)sudo apt-get install aptitude
Zusätzlich zu den in den anderen Antworten erwähnten Löschvorgängen möchten Sie wahrscheinlich ausgeführt werden, wenn Sie absolut sicher sein möchten, dass alles entfernt wurde
Welches zeigt Ihnen Dateien / Ordner mit dem Namen PHP in ihnen. Sie werden dann jeden dieser Dateipfade überprüfen wollen, dh:
Und löschen Sie sie nach Bedarf. Achten Sie jedoch darauf, dass Sie nichts löschen, was für einen anderen Prozess wichtig ist, den Sie weiterhin ausführen müssen, es sei denn, Sie möchten dies ebenfalls neu installieren.
Um ein Verzeichnis oder eine Datei zu entfernen, verwenden wir den
rm
Kommentar mit dem-rf
Flag. In dem obigen Beispiel würden wir also Folgendes eingeben:quelle
Die Regex, die die beiden Leute sagten, ist falsch.
Anstelle von
php.*
oderphp*
sollte man verwenden^php*
Das ist die richtige Antwort.
Sie würden also Folgendes verwenden:
sudo apt-get purge "^php*"
Obwohl ich nicht empfehle, diese Methode zu verwenden, ist sie in hohem Maße automatisiert, und ich empfehle Ihnen, diese Methode zu verwenden
sudo apt list --installed | grep php
, um die Liste der Pakete abzurufen und die folgenden Paketnamen zu verwenden, die Sie mit dem obigen Befehl in diesem Befehl erhalten haben:sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO
quelle
^php*
undphp*
php.*
werden jedoch auch Fälle behandelt, in denenphp
am Anfang des Paketnamens angezeigt wird. Es gibt keinen Grund, beides zu verwenden,^php*
undphp.*
es sollte auch so sein^php.*
. apt-get scheint zu wissen, dassphp*
es sich um einen Glob handelt, nicht um einen regulären Ausdruck. Wenn Sie jedoch den^
Buchstaben hinzufügen , kann es sich möglicherweise nicht um einen Glob handeln, sodass Sie jedes Paket erhalten, das mit "ph" beginnt.