PHPを完全に削除する方法は?


57

PHP 5.2をコンパイルできるようにするには、PHP 5.3パッケージからサーバーをクリーンアップする必要があります(たくさんあります)。それらをすべて取り除く最も簡単で安全な方法は何ですか?

回答:


86

これにより、名前が始まるパッケージphpとそれに関連するパッケージが完全に削除されます。

sudo apt-get purge 'php*'

よろしくお願いします。あなたの答えを選んだのは、マルコにはカルマが不足していないようだからです:)
corev

さて、PHP 5.2をインストールする最良の方法に関するアイデアはありますか?
corev

6
この正確なコマンドは、システムからすべてのパッケージを消去しました。これを使用することは誰にも勧めません。
カバジェロ

13
php*正規表現として扱われ、ph名前に含まれるパッケージは削除されます。
ムル14年

4
これは本当に安全な考えではないと考えているのは私だけですか?
大安

67

私はしません実行しているお勧めしますsudo apt-get purge php*

怖かった!幸いな-yことphpに、名前のない約100個のパッケージを選択したため、このオプションは入力しませんでした。

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
これは受け入れられた答えである必要があります
ダークスター14

1
幅が広すぎるために1つの構文を提案しているように聞こえますが、コマンドが何をするのかを説明することを気にしませんか?
ビンス

2
どのような場合にはaptitudeインストールされていないかのUbuntuにインストールすることはできません、方法についてのapt-get cache検索?
ヴィッキーDev

17

おそらく、システムからすべてのphp *パッケージを削除することになるでしょう。ワイルドカードを使用した何かが機能するはずです

sudo apt-get purge php.*

PHP 5.2にロールバックする方法に興味があるかもしれません。


5
php*正規表現として扱われ、ph名前に含まれるパッケージは削除されます。
ムル14年

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が要求したものではないapacheも削除します
-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
ジャストインタイムBerlakeでは

2

他の回答に記載されているパージに加えて、すべてが削除されたことを完全に確認したい場合は、実行する可能性があります

cd /
sudo find -name "php"

phpという名前のファイル/フォルダーが表示されます。次に、これらのファイルパスのそれぞれを確認します。

cd /usr/local/include/php
ls

必要に応じて削除します。ただし、再インストールする必要がない限り、実行し続ける必要がある別のプロセスにとって重要なものを削除しないように注意してください。

ディレクトリまたはファイルを削除するにrmは、-rfフラグ付きのコメントを使用するため、上記の例では、次のように入力します。

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

1

二人が言った正規表現は間違っています。
を使用する代わりに、php.*またはphp*Oneを使用する必要があります^php*

それが正しい答えです。
だからあなたは使用します:sudo apt-get purge "^php*"

この方法を使用sudo apt list --installed | grep phpすることをお勧めしませんが、高度に自動化されるため、パッケージのリストを取得し、上記のコマンドで取得したこれらのパッケージ名をこのコマンドで使用することをお勧めします。

sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO


これにより、たとえばlibapache2-mod-phpは削除されません。
パトリックB.

@PatrickB。だから、両方を使用する必要があります^php*php*
AmirHossein

ただし、パッケージ名の先頭に表示さphp.*れるケースもカバーphpします。両方を使用する理由はありません^php*し、php.*また、それがあるべきでは^php.*。apt-getはそれphp*が正規表現ではなくグロブであることを知っているようですが、^文字を追加するとグロブになることはないので、「ph」で始まるすべてのパッケージを取得します。
パトリックB.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.