apt-get удалить - очистить вино * удалил все! [Дубликат]

В gnome (по умолчанию ubuntu) это gnome-open

1
задан 12 April 2014 в 04:18

2 ответа

Эта конкретная проблема тоже меня укусила. apt-get remove wine сказал, что вино не установлено, а which wine и wine version все еще функционируют. wine-devel и несколько других пакетов были установлены, и вы не хотите набирать их по одному.

Это особенно неприятно, когда вы смотрите на список и видите, как и ожидалось (поскольку список отображается в алфавитном порядке, они приближаются к последнему и берут почти весь экран), а затем ударяют Y.

Оба приведенных здесь ответа неверны и не являются неправильным использованием шаблона. Это прекрасно объясняется в ответе gertvdijk: «Каков правильный способ полностью удалить приложение?»

Проблема исходит из apt-get, интерпретирующего ввод как регулярное выражение, и поэтому интерпретирует звездочку как «ноль или более» times ", а не как ожидаемый подстановочный знак, в результате чего удаляются любые пакеты, содержащие строку win и любой пакет, который зависит от такого пакета (который в основном удаляет почти всю вашу систему).

Команда, которая сделал бы то, что, как я ожидал, было бы

apt-get remove --purge 'wine.*'

Это удаляет все пакеты, имена которых содержат wine.

2
ответ дан 24 May 2018 в 09:32
  • 1
    Использование wine.* будет соответствовать только именам пакетов, которые содержат wine, но это все еще может быть больше, чем необходимо. В частности, если достаточно удалить пакеты, имена которых начинают с wine, тогда ^wine можно использовать (например, apt-get remove --purge ^wine). – Eliah Kagan 25 August 2017 в 13:37

Помимо правильного ответа @ mchid, команда, которую вы должны были использовать, была

sudo apt-get remove wine\* 

Обратите внимание на обратную косую черту. Он инструктирует оболочку не открывать подстановочный знак и передавать ее на apt-get, как есть. Случилось так, что ваша оболочка интерпретировала wine* и передала целые имена пакетов для apt-get для удаления вместо тех, которые вы ожидали.

-1
ответ дан 24 May 2018 в 09:32
  • 1
    Это неверно. Оболочка будет только расширять имена файлов на основе глобусов, а не имена пакетов на основе регулярных выражений. Как показано в ссылке в вопросе, вы имеете выход как Note, selecting 'kwin-style-skulpture' for regex 'wine*'. Оболочка не производит такой вывод. Этот вывод исходит из apt-get, что означает, что оболочка ничего не расширила, потому что apt-get получил нерасширенный глобус с *, а не пучок имен файлов. – Chai T. Rex 13 December 2016 в 19:15
  • 2
    Не делайте этого! См. Почему apt удаляет нежелательные пакеты при предоставлении * в качестве суффикса? Действие purge или remove с аргументом типа wine*, wine\* или 'wine*' удаляет больше, чем вы думаете. Он удаляет каждый пакет с win в любом месте его имени (не wine, win - поскольку wine* рассматривается как регулярное выражение, а e* означает «ноль или больше e s») и каждый пакет, который прямо или косвенно зависит от любого из этих пакетов. Это очень часто нарушает работу системы Ubuntu очень плохо, предотвращая ее использование для большей части всего, пока она не будет исправлена ​​или переустановлена. – Eliah Kagan 23 August 2017 в 22:17

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

Похожие вопросы: