17

50以上のphprpmがインストールされているサーバーへのアクセスが許可されました。私はそれらをすべて削除しようとしています。

基本的に、私はこれら2つのコマンドを組み合わせようとしています。

rpm -qa | grep 'php'

rpm --erase

パイプとリダイレクトについては少し知っていますが、この目的でそれらを使用する方法がわかりません。助けてください。

4

5 に答える 5

38

使用するyum

指定されたパッケージとそのすべての依存関係を一覧表示して削除しますが、y/N確認が必要です。

yum remove 'php*'

確認を省略するには、 に置き換えyumますyum -y

使用するrpm

このセクションは、tvalburgRicardoによる回答に基づいています。

インストールされている RPM を一覧表示します。

rpm -qa 'php*'
rpm -qa | grep '^php'  # Alternative listing.

実際には消去せずに、消去する RPM をリストします。

rpm -e --test -vv $(rpm -qa 'php*') 2>&1 | grep '^D:     erase:'

grep '^D: ========== ---'Amazon Linux では、代わりに使用する必要がある場合があります。

上記のコマンドで関連する RPM が一覧表示されない場合は、エラーを調査します。

rpm -e --test -vv $(rpm -qa 'php*')

これらの RPM を消去します。

rpm -e $(rpm -qa 'php*')

消去を確認します。

rpm -qa 'php*'
于 2014-03-10T22:46:31.630 に答える
8

このジョブの通常のツールは次のxargsとおりです。

rpm -qa | grep 'php' | xargs rpm -e

rpm -eこれは、 の標準入力で指定されたすべてのパッケージxargsを引数として呼び出します。

于 2012-08-17T15:15:30.617 に答える
0

リストする:

rpm -qa | grep 'php'

インストールされ、フィルタリングされたリストを削除するには:

rpm -e $(rpm -qa |grep 'php')
于 2013-05-27T08:23:37.843 に答える
0

別のオプションはrpm -qa | grep ...rpm --eraseコマンドでの出力を直接使用することです。

rpm --erase `rpm -qa | grep php`

phpあなたが引用している場合ではないかもしれませんxargsが、リストをいくつかの呼び出しに分割することを決定しrpm -e、最初のリストに後続のリストのパッケージの依存関係であるパッケージが含まれている場合、アプローチは問題に遭遇する可能性があります。もちろん、一度に多くのパッケージを削除する場合は、他にも考慮すべきことがあります...

于 2012-08-17T16:02:39.720 に答える
0

今日はこれを食べました。--justdb および --noscripts rpm パラメーターを使用しても、--allmatches がなければ十分ではありませんでした。

[root@localhost ~]# rpm -ev --allmatches --justdb <the-package-name>

https://mcvictech.blogspot.com/2011/10/rpm-error-specifies-multiple-packages.html

于 2020-04-05T20:11:43.660 に答える