Не могу понять функцию удаления apt-кеша

Мне нужно было переустановить Wine с нуля, поэтому я сначала решил удалить текущую версию, но, запустив команду

sudo apt-cache pkgnames wine

до и после запуска любого из:

sudo apt-cache --purge remove wine1.4
sudo apt-cache --purge remove wine1.6
sudo apt-cache --purge remove wine1.7

результаты в тех же списках пакетов, так как я знаю, что выполнение apt-cache remove фактически удалил пакет, которым я командовал?

также не должен --purge опция подразумевает полное удаление вин (включая wine1.7-dbg, wine1.7dev и несколько других файлов)?

2 ответа

Решение

Правильная команда для удаления пакета, например,

sudo apt-get --purge remove wine1.4

и НЕ

sudo apt-cache --purge remove wine1.4

--purge не удаляет другие пакеты, если другие пакеты не зависят от этого пакета.


Команда sudo apt-cache pkgnames wine печатает только известные пакеты, а не статус установки:

От man apt-cache,

pkgnames [префикс]
    Эта команда печатает имя каждого пакета, который знает APT.
    Необязательный аргумент - это совпадение префикса для фильтрации списка имен. 
    вывод подходит для использования в полной функции вкладки оболочки и
    вывод генерируется очень быстро. Эта команда лучше всего используется с
    вариант --generate.

Чтобы показать статус установки, вы можете использовать apt-cache policy:

$ apt-cache policy wine
wine:
  Installed: (none)
  Candidate: 1:1.7.44-0ubuntu1
  Version table:
     1:1.7.44-0ubuntu1 0
        500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ wily/main amd64 Packages
     1:1.6.2-0ubuntu10 0
        500 http://archive.ubuntu.com/ubuntu/ wily/universe amd64 Packages

или же dpkg -l

$ dpkg -l | grep wine
rc  wine1.6                                     1:1.6.2-0ubuntu10                        amd64        Microsoft Windows Compatibility Layer (Binary Emulator and Library)
rc  wine1.6-amd64                               1:1.6.2-0ubuntu10                        amd64        Microsoft Windows Compatibility Layer (64-bit support)
rc  wine1.6-i386:i386                           1:1.6.2-0ubuntu10                        i386         Microsoft Windows Compatibility Layer (32-bit support)
ii  wine1.7                                     1:1.7.44-0ubuntu1                        amd64        Microsoft Windows Compatibility Layer (Binary Emulator and Library)
ii  wine1.7-amd64                               1:1.7.44-0ubuntu1                        amd64        Microsoft Windows Compatibility Layer (64-bit support)
ii  wine1.7-i386:i386                           1:1.7.44-0ubuntu1                        i386         Microsoft Windows Compatibility Layer (32-bit support)
ii  winetricks                                  0.0+20141009+svn1208-2ubuntu1            all          Microsoft Windows Compatibility Layer (winetricks)

Перефразируя со справочной страницы apt-get:

   purge is identical to remove except that configuration files are deleted too.

Он не удалит больше или меньше пакетов, чем обычный remove было бы.

Но чтобы удалить другие пакеты, которые были установлены как зависимости, вы можете запустить эту команду позже:

sudo apt-get --purge autoremove

Снова цитируем справочную страницу:

   autoremove
       autoremove is used to remove packages that were automatically
       installed to satisfy dependencies for other packages and are now no
       longer needed.
Другие вопросы по тегам