问题描述
我需要从PHP 5.3软件包中清理我的服务器(有很多),以便能够编译PHP 5.2。什么是最简单/最安全的方法来摆脱它们?
最佳解决方法
这应该完全删除名称以php
开头的任何包以及与之相关的任何包。
sudo apt-get purge 'php*'
次佳解决方法
我不建议运行sudo apt-get purge php*
。
那太吓人了!幸运的是,我没有输入-y
选项,因为它在名称中选择了大约100个没有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清除,删除所有包。
提示:如果您感觉更安全,您可以轻松地单独运行它们,并复制+粘贴包列表以进行删除:sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json
第三种解决方法
您可能想要清除系统中的所有php *软件包。使用wild-card的东西应该可以工作
sudo apt-get purge php.*
您可能对How to rollback to PHP 5.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>
第五种方法
首先,您必须删除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
第六种方法
除了其他答案中提到的任何清除,如果你想完全确定一切都被删除,你可能想要运行
cd /
sudo find -name "php"
这将显示名称为php的文件/文件夹。然后,您将要检查每个文件路径,即:
cd /usr/local/include/php
ls
并根据需要删除它们。但是,请注意不要删除对于需要继续运行的其他进程至关重要的任何内容,除非您还想重新安装。
要删除目录或文件,我们使用带有-rf
标志的rm
注释,因此在上面的示例中,我们键入:
sudo rm -rf /usr/local/include/php