シェル:特定のパッケージのすべての関連パッケージを削除する方法は? / Ubuntu

シェル:特定のパッケージのすべての関連パッケージを削除する方法は? / Ubuntu

最近、ホスティングプロバイダに必要な最小パッケージを最小限にインストールするという仮定のもとにオペレーティングシステムを再ロードしてもらいましたが、Ubuntu 12.04 64 bit minimalmysqlがインストールされているため必要ないので、これに関連するすべてのソフトウェアを削除したいと思いました。

私がしたことは次のとおりです。

$ sudo apt-get --purge remove mysql-client
$ sudo apt-get --purge remove mysql-server

しかし、私はまだmysqlバイナリとファイルを探しています。

$ whereis mysql
mysql: /usr/bin/mysql /etc/mysql /usr/bin/X11/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

私は次のことを考えていました。

$ dpkg -s mysql*

しかし、これは役に立ちません。

どんな提案がありますか?

答え1

なぜそれほど必要ではないと確信していますか?おそらく他のパッケージがそれに依存している可能性があり、mysqlサーバーを設定するためにのみ使用されるわけではありません。たとえば、一部のプログラムは内部データベースの管理に使用します。

今、あなたの質問に答えるための最初のステップは、実際にどのパッケージがこれらのファイルをインストールしたのかを見つけることです。

$ dpkg -S /usr/bin/mysql
mysql-client-core-5.5: /usr/bin/mysql

これはUbuntu 14.04仮想マシンの出力です。バージョンは異なる場合がありますが、同じ原則が適用されます。これで、パッケージ名を知って手動で削除できます。

デフォルトでは、削除した2つのパッケージは次のとおりです。慰安宝別のパッケージを指します。したがって、それらを削除すると、一緒にインストールされたすべてのパッケージではなくダミーパッケージのみが削除されます。 mysqlに関連するすべてを削除するには、次のコマンドを実行します。

sudo apt-get remove --purge mysql-*

答え2

apt-get remove特定のパッケージに含まれているファイルを使用するには、次のようにします。

apt-get remove $(dpkg  -S /usr/bin/mysql | cut -d ':' -f 1)

/usr/bin/mysql、削除したいファイルに置き換えます)

この機能を使用すると、apt-getパッケージ(dpkgで検索)を本当に削除するかどうかを確認するメッセージが表示されます。場合によっては、パッケージ名を見た後にこれを実行したくないことに気づくことがあります。

関連情報