web-dev-qa-db-ja.com

このパッケージがapt-get removeで削除されないのはなぜですか?

私は持っています:

~$ dpkg -l | grep -i nvidia
rc  libnvidia-compute-396:i386  396.54-0ubuntu0~gpu18.04.1  i386 NVIDIA libcompute package

私がする時:

~$ Sudo apt-get remove --purge libnvidia-*

このパッケージは削除されませんか?

このコマンドを使用すると、他の「libnvidia」パッケージが削除されます。たとえば、次のようになります。

rc  libnvidia-compute-390:AMD64   390.48-0ubuntu3      AMD64  NVIDIA libcompute package

削除ログには次のように記載されています:

Package 'libnvidia-compute-396' is not installed, so not removed. Did you mean 'libnvidia-compute-396:i386'?

そして、フルネームで削除すると削除されます。

1
croraf

Apt(またはdpkg)は、デフォルトでデフォルトのアーキテクチャで動作します。出力から、i386はデフォルトのアーキテクチャではないように見えるため、指定する必要があります。たとえば、 Debian Multiarch HOWTO を参照してください。これは、そのようなパッケージのインストールと削除の両方に外部アーキテクチャを指定する必要があることを示しています。

できること:

Sudo apt-get remove --purge 'libnvidia-.*:i386'

(aptはワイルドカードを使用しませんが、正規表現を使用することに注意してください。 apt-get remove with wildcard removed way more than expected。why?

3
user894115