Muszę wyczyścić mój serwer z pakietów PHP 5.3 (jest ich mnóstwo), aby móc skompilować PHP 5.2. Jaka jest najłatwiejsza / najbezpieczniejsza metoda pozbycia się ich wszystkich?
package-management
php
corev
źródło
źródło
php*
sprawi, że będzie traktowany jako wyrażenie regularne, a każdy pakiet zph
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 bezphp
ich nazwy.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
źródło
aptitude
nie jest zainstalowany lub nie można go zainstalować na Ubuntu, co powiesz naapt-get cache
wyszukiwanie?Prawdopodobnie będziesz chciał usunąć wszystkie pakiety php * ze swojego systemu. Coś z symbolem wieloznacznym powinno działać
Być może zainteresuje Cię powrót do PHP 5.2, gdzie możesz przejść dalej.
źródło
php*
sprawi, że będzie traktowany jako wyrażenie regularne, a każdy pakiet zph
jego nazwą zostanie usunięty.Najpierw musisz usunąć Apache i wszystkie jego zależności za pomocą:
i wtedy:
Jeśli masz jakiekolwiek problemy z phpMyAdmin, spróbuj wprowadzić to w terminalu:
źródło
W twoim przypadku możesz wyszukać wszystkie pakiety:
a następnie oczyść je:
źródło
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ć
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 .:
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:źródło
Wyrażenie regularne, które obie osoby powiedziały, jest nieprawidłowe.
Zamiast używać
php.*
lubphp*
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
źródło
^php*
iphp*
php.*
obejmie również przypadki, w którychphp
pojawia się na początku nazwy pakietu. Nie ma powodu, aby korzystać z obu tych opcji,^php*
aphp.*
także powinno być^php.*
; apt-get wydaje się wiedzieć, żephp*
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”.