50以上のphprpmがインストールされているサーバーへのアクセスが許可されました。私はそれらをすべて削除しようとしています。
基本的に、私はこれら2つのコマンドを組み合わせようとしています。
rpm -qa | grep 'php'
と
rpm --erase
パイプとリダイレクトについては少し知っていますが、この目的でそれらを使用する方法がわかりません。助けてください。
yum
指定されたパッケージとそのすべての依存関係を一覧表示して削除しますが、y/N
確認が必要です。
yum remove 'php*'
確認を省略するには、 に置き換えyum
ますyum -y
。
rpm
このセクションは、tvalburgとRicardoによる回答に基づいています。
インストールされている 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*'
このジョブの通常のツールは次のxargs
とおりです。
rpm -qa | grep 'php' | xargs rpm -e
rpm -e
これは、 の標準入力で指定されたすべてのパッケージxargs
を引数として呼び出します。
リストする:
rpm -qa | grep 'php'
インストールされ、フィルタリングされたリストを削除するには:
rpm -e $(rpm -qa |grep 'php')
別のオプションはrpm -qa | grep ...
、rpm --erase
コマンドでの出力を直接使用することです。
rpm --erase `rpm -qa | grep php`
php
あなたが引用している場合ではないかもしれませんxargs
が、リストをいくつかの呼び出しに分割することを決定しrpm -e
、最初のリストに後続のリストのパッケージの依存関係であるパッケージが含まれている場合、アプローチは問題に遭遇する可能性があります。もちろん、一度に多くのパッケージを削除する場合は、他にも考慮すべきことがあります...
今日はこれを食べました。--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