Odpowiedzi:
Powinno to całkowicie usunąć każdy pakiet o nazwie zaczynającej się od php
i wszelkich powiązanych z nim.
sudo apt-get purge 'php*'
php*
sprawi, że będzie traktowany jako wyrażenie regularne, a każdy pakiet z ph
jego nazwą zostanie usunięty.
I nie polecam uruchomiony sudo apt-get purge php*
.
To było straszne! Na szczęście nie wpisałem tej -y
opcji, ponieważ wybrałem około setki paczek bez php
ich nazwy.
sudo apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
Jak to działa:
Po pierwsze , wykaz pakietów jest generowany przy użyciu tej serii poleceń: dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
.
Wskazówka: możesz uruchomić tę część polecenia w swoim terminalu, aby zobaczyć, które pakiety zostaną usunięte. Powinieneś dostać coś takiego:
libapache2-mod-php5 php5 php5-cli php5-common php5-json
Wreszcie , po uruchomieniu pełnego polecenia, ta lista pakietów zostaje przekazana do sudo apt-get purge, usuwając wszystkie pakiety.
Wskazówka: jeśli wydaje ci się to bezpieczniejsze, możesz równie łatwo uruchomić je osobno, a także skopiować i wkleić listę pakietów do usunięcia w następujący sposób:sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json
aptitude
nie jest zainstalowany lub nie można go zainstalować na Ubuntu, co powiesz na apt-get cache
wyszukiwanie?
Prawdopodobnie będziesz chciał usunąć wszystkie pakiety php * ze swojego systemu. Coś z symbolem wieloznacznym powinno działać
sudo apt-get purge php.*
Być może zainteresuje Cię powrót do PHP 5.2, gdzie możesz przejść dalej.
php*
sprawi, że będzie traktowany jako wyrażenie regularne, a każdy pakiet z ph
jego nazwą zostanie usunięty.
Najpierw musisz usunąć Apache i wszystkie jego zależności za pomocą:
sudo apt-get purge apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
i wtedy:
sudo rm -rf /etc/apache2; rm -rf /etc/php5; rm -rf /var/lib/mysql; rm etc/mysql
Jeśli masz jakiekolwiek problemy z phpMyAdmin, spróbuj wprowadzić to w terminalu:
dpkg-reconfigure phpmyadmin
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
W twoim przypadku możesz wyszukać wszystkie pakiety:
sudo aptitude search php5|awk {'print $2'}|grep -v i386|grep -v "^A"|tr "\n" " "
a następnie oczyść je:
sudo apt-get purge <list of packages found>
aptitude
nie jest zainstalowany w moim systemie (16.04)
sudo apt-get install aptitude
Oprócz wszelkich czystek wymienionych w innych odpowiedziach, jeśli chcesz mieć całkowitą pewność, że wszystko zostało usunięte, prawdopodobnie będziesz chciał uruchomić
cd /
sudo find -name "php"
Które pokażą Ci pliki / foldery z nazwą php w nich. Następnie będziesz chciał sprawdzić każdą z tych ścieżek plików, tj .:
cd /usr/local/include/php
ls
I usuń je odpowiednio. Uważaj jednak, aby nie usunąć niczego, co jest krytyczne dla innego procesu, który musisz kontynuować, chyba że chcesz to również zainstalować ponownie.
Aby usunąć katalog lub plik, używamy rm
komentarza z -rf
flagą, więc biorąc pod uwagę powyższy przykład, wpiszemy:
sudo rm -rf /usr/local/include/php
Wyrażenie regularne, które obie osoby powiedziały, jest nieprawidłowe.
Zamiast używać php.*
lub php*
należy użyć^php*
To właściwa odpowiedź.
Więc użyłbyś:sudo apt-get purge "^php*"
Chociaż nie zalecam używania tej metody, ponieważ jest ona wysoce zautomatyzowana i zachęcam do skorzystania z niej, sudo apt list --installed | grep php
aby uzyskać listę pakietów i użyć tych nazw pakietów, które otrzymałeś z powyższego polecenia w tym poleceniu:
sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO
^php*
iphp*
php.*
obejmie również przypadki, w których php
pojawia się na początku nazwy pakietu. Nie ma powodu, aby korzystać z obu tych opcji, ^php*
a php.*
także powinno być ^php.*
; apt-get wydaje się wiedzieć, że php*
jest globem, a nie wyrażeniem regularnym, ale kiedy dodasz ^
znak, nie może to być glob, więc dostaniesz każdy pakiet zaczynający się na „ph”.