PHP를 완전히 제거하는 방법?


57

PHP 5.2를 컴파일하려면 PHP 5.3 패키지에서 서버를 정리해야합니다 (많은 패키지가 있습니다). 그것들을 모두 제거하는 가장 쉽고 안전한 방법은 무엇입니까?

답변:


86

이렇게하면 이름이 시작된 패키지와 관련된 패키지가 완전히 제거됩니다 php.

sudo apt-get purge 'php*'

둘 다 고마워 마르코 : 카르마의 부족이하지 않는 것 때문에 그냥 대답을 선택
corev

자, 이제 PHP 5.2를 설치하는 가장 좋은 방법에 대한 아이디어가 있습니까?
corev

6
이 정확한 명령은 내 시스템에서 모든 패키지를 지 웠습니다. 나는 누군가에게 그것을 사용하도록 조언하지 않습니다.
Caballero

13
php*정규식으로 취급 ph하고 이름이 포함 된 패키지 는 제거됩니다.
muru

4
이것이 실제로 안전한 아이디어가 아니라고 생각하는 유일한 사람입니까?
Daan

67

나는 달리기를 권장 하지 않습니다sudo apt-get purge php* .

무서웠 어! 다행히도 -y옵션을 입력하지 않았습니다 php. 이름 없이 약 수백 개의 패키지를 선택했기 때문 입니다.

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

작동 방식 :

먼저이 일련의 명령을 사용하여 패키지 목록이 생성됩니다 dpkg -l | grep php| awk '{print $2}' |tr "\n" " ".

힌트 : 터미널에서 명령의이 부분을 실행하여 어떤 패키지가 제거되는지 확인할 수 있습니다. 다음과 같은 것을 얻어야합니다. libapache2-mod-php5 php5 php5-cli php5-common php5-json

마지막으로 전체 명령을 실행하면이 패키지 목록이 sudo apt-get purge로 전달되어 모든 패키지가 제거됩니다.

힌트 : 안전하다고 생각되면 따로 쉽게 실행할 수 있으며 패키지 목록을 복사하여 붙여 넣어 제거 할 수 있습니다.sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json


3
이것은 허용 대답해야한다
다크 Star1

1
하나의 구문이 너무 넓기 때문에 나쁘다는 것을 제안하는 것처럼 들리지만 명령이 수행하는 작업을 설명 할 수 있으므로 사람들이 명령을 실행하기 전에 그것이 적절한 지 판단 할 수 있습니까?
Vince

2
경우 어떻게 aptitude설치되어 있지 않거나 우분투에 설치할 수 없습니다, 방법에 대한 apt-get cache검색?
Vicky Dev

17

시스템에서 모든 php * 패키지를 제거하고 싶을 것입니다. 와일드 카드가있는 것이 작동해야합니다.

sudo apt-get purge php.*

다음 단계 로 PHP 5.2로 롤백하는 방법에 관심이있을 수 있습니다 .


5
php*정규식으로 취급 ph하고 이름이 포함 된 패키지 는 제거됩니다.
muru

3

먼저 다음을 사용하여 Apache와 모든 종속 항목을 제거해야합니다.

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

그리고:

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

phpMyAdmin에 문제가 있다면 이것을 터미널에 입력하십시오 :

dpkg-reconfigure phpmyadmin

*** 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

귀하의 경우 모든 패키지를 검색 할 수 있습니다.

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

그런 다음 제거하십시오.

sudo apt-get purge <list of packages found>

aptitude내 시스템 (16.04)에 설치되어 있지 않습니다
kleinfreund

적성을 설치하려면 다음과 같이 입력 sudo apt-get install aptitude
하면

2

다른 답변에 언급 된 퍼지 외에도 모든 것이 제거되었는지 확인하려면 실행하고 싶을 것입니다

cd /
sudo find -name "php"

php라는 이름의 파일 / 폴더가 표시됩니다. 그런 다음 각 파일 경로를 확인하려고합니다. 예 :

cd /usr/local/include/php
ls

적절하게 삭제하십시오. 다시 설치하지 않으려면 계속 실행해야하는 다른 프로세스에 중요한 항목은 삭제하지 않도록주의하십시오.

디렉토리 또는 파일을 제거하려면 플래그 rm와 함께 주석을 사용 -rf하므로 위의 예에서 다음을 입력하십시오.

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

1

두 사람이 말한 정규식이 잘못되었습니다. 또는 One
대신에php.*php*^php*

정답입니다.
따라서 다음을 사용합니다.sudo apt-get purge "^php*"

이 방법을 사용하는 것은 권장하지 않지만 고도로 자동화되어 sudo apt list --installed | grep php패키지 목록을 가져 오고이 명령의 위 명령에서 얻은 패키지 이름을 사용하도록 권장합니다.

sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO


예를 들어 libapache2-mod-php는 제거되지 않습니다.
Patrick B.

@PatrickB. 그래서 당신은 모두를 사용할 필요가 ^php*php*
AmirHossein

그러나 패키지 이름의 시작 부분에 나타나는 php.*경우도 다룹니다 php. 이 모두를 사용할 필요는 없습니다 ^php*php.*또한,해야한다 ^php.*; apt-get은 그것이 php*정규 표현식이 아니라 glob 라는 것을 알고있는 것처럼 보이지만 ^문자 를 추가하면 glob이 될 수 없으므로 "ph"로 시작하는 모든 패키지를 얻을 수 있습니다.
Patrick B.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.