Почему этот пакет не удаляется с помощью 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 ответ

Апт (или, скорее, dpkg) работает на архитектуре по умолчанию, ну, по умолчанию. Из вывода это выглядит так i386 это не ваша архитектура по умолчанию, поэтому вы должны указать ее. Например, смотрите https://wiki.debian.org/Multiarch/HOWTO, который показывает, что вы должны указать стороннюю архитектуру для установки и удаления таких пакетов.

Вы могли бы сделать:

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

(Обратите внимание, что apt не использует подстановочные знаки, а регулярное выражение. См. Apt-get remove с удаленными подстановочными знаками гораздо больше, чем ожидалось. Почему?)

Другие вопросы по тегам