PHP को पूरी तरह से कैसे हटाएं?


57

मुझे PHP 5.3 संकुल से अपने सर्वर को साफ करने की आवश्यकता है (उनमें से बहुत सारे हैं) PHP 5.2 को संकलित करने में सक्षम होने के लिए। इन सब से छुटकारा पाने का सबसे आसान / सबसे सुरक्षित तरीका क्या है?

जवाबों:


86

यह किसी भी पैकेज को एक नाम के साथ पूरी तरह से हटा देना चाहिए जो इसके साथ शुरू होता है phpऔर इससे संबंधित कुछ भी।

sudo apt-get purge 'php*'

ठीक है आप दोनों का धन्यवाद। मैंने सिर्फ आपका जवाब चुना क्योंकि मार्को को कर्म की कमी नहीं लगती है :)
कोरव

ठीक है, अब PHP 5.2 स्थापित करने के सर्वोत्तम तरीके पर कोई विचार?
19

6
इस सटीक कमांड ने मेरे सिस्टम से सभी पैकेजों को मिटा दिया। मैं किसी को भी इसका इस्तेमाल करने की सलाह नहीं देता।
काबलेरो

13
php*इसे रेगेक्स के रूप में माना जाएगा, और phइसके नाम के साथ कभी भी पैकेज हटा दिया जाएगा।
मूरू

4
क्या मैं केवल यह सोच रहा हूं कि यह वास्तव में एक सुरक्षित विचार नहीं है?
दान

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
यह स्वीकृत उत्तर होना चाहिए
डार्क स्टार

1
लगता है कि आप एक वाक्यविन्यास का सुझाव दे रहे हैं, क्योंकि यह बहुत बुरा है, लेकिन क्या आपको यह समझाने में मन लगता है कि आपकी आज्ञा क्या है, इसलिए लोग इसे चलाने से पहले उचित समझ सकते हैं?
विंस

2
क्या होगा अगर aptitudeउबंटू पर स्थापित या स्थापित नहीं किया जा सकता है, तो apt-get cacheखोज के बारे में कैसे ?
विक्की देव

17

आप शायद अपने सिस्टम से सभी php * संकुल शुद्ध करना चाहते हैं। वाइल्ड-कार्ड के साथ कुछ काम करना चाहिए

sudo apt-get purge php.*

आप आगे जाने के लिए PHP 5.2 में रोलबैक करने में रुचि रखते हैं।


5
php*इसे रेगेक्स के रूप में माना जाएगा, और phइसके नाम के साथ कभी भी पैकेज हटा दिया जाएगा।
मुरु

3

सबसे पहले, आपको अपाचे और इसके सभी निर्भरता को दूर करना होगा:

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

*** ध्यान से पढ़े बिना कॉपी-पेस्ट करने वालों पर ध्यान दें, इससे अपाचे भी
निकल

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

दो लोगों ने कहा कि regex गलत है।
उपयोग करने के बजाय 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 को नहीं हटाता है।
पैट्रिक बी।

@PatrickB। तो आप दोनों का उपयोग करने के लिए है ^php*औरphp*
AmirHossein

लेकिन php.*उन मामलों को भी कवर करेगा जहां phpपैकेज नाम की शुरुआत में दिखाई देता है। दोनों का उपयोग करने का कोई कारण नहीं है ^php*और php.*इसके अलावा, यह होना चाहिए ^php.*; apt-get पता लगता है कि php*एक glob है, regex नहीं है, लेकिन जब आप ^वर्ण जोड़ते हैं तो यह संभवतः एक glob नहीं हो सकता है, इसलिए आपको "ph" में शुरू होने वाला हर पैकेज मिलेगा।
पैट्रिक बी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.