Командная строка, чтобы избавиться от & ldquo; остаточная конфигурация & rdquo; [dубликат]

Я искал сеть для такой информации и обнаружил разные командные строки, такие как:

sudo apt-get remove application sudo apt-get remove application* sudo apt-get remove --purge application sudo apt-get remove --purge application* sudo apt-get purge application sudo apt-get purge application*

Итак, что это правильный путь? Нужно ли использовать этот «*»?

После этого я также нашел следующие команды:

sudo updatedb sudo locate application sudo rm -rf (file/folder name)
484
задан 23 June 2015 в 23:51

14 ответов

apt-get remove packagename удалит двоичные файлы, но не файлы конфигурации или данных пакета packagename. Он также будет оставлять зависимостями, установленными с ним, во время установки нетронутыми. apt-get purge packagename или apt-get remove --purge packagename удалят все, что касается пакета packagename, но не установлены зависимости, установленные с ним при установке. Обе команды эквивалентны. Особенно полезно, когда вы хотите «начать все» с приложения, потому что вы испортили конфигурацию. Однако он не удаляет файлы конфигурации или данных, находящиеся в домашних каталогах пользователей, обычно в скрытых папках. Нелегко также удалить их. apt-get autoremove удаляет потерянные пакеты, то есть установленные пакеты, которые раньше устанавливались как зависимые, но не более. Используйте это после удаления пакета с установленными зависимостями, которые вам больше не интересны. [F11] или aptitude purge packagename (аналогичным образом) также попытаются удалить другие пакеты, которые были необходимы packagename, но не требуются ни при каких оставшихся пакеты. Обратите внимание, что aptitude запоминает только информацию о зависимостях для пакетов, которые она установила.

И еще много существует. Менеджеры нижнего уровня dpkg могут использоваться (расширенные) или графические инструменты, такие как Muon, Synaptic, Software Center и т. Д. Не существует единого «правильного пути» для удаления приложений или выполнения других задач, взаимодействующих с вашим управлением пакетами.

Список, который вы нашли, является просто примером. Удостоверьтесь, что вы понимаете значения и проверяете, что он хочет сделать, прежде чем принимать действие (вам нужно нажать Y, прежде чем он действительно выполнит действия, как было предложено).

Версия звездочки в вопросе Не существует единого «правильного пути» удаления приложений или выполнения других задач, взаимодействующих с вашим управлением пакетами. ; apt-get принимает регулярное выражение, а не шаблон glob в качестве оболочки. Итак, что происходит с

sudo apt-get remove application*

, следующее:

Оболочка пытается развернуть application*, глядя на файлы в текущем каталоге. Если (как обычно бывает), он ничего не находит, он возвращает шаблон шара без изменений (предположим, что bash с поведением по умолчанию здесь --- zsh будет выходить из строя). apt-get удалит пакеты, имя которых содержит строку, которая удовлетворяет регулярному выражению application*, то есть applicatio, за которым следует произвольное число n: applicatio, application, applicationn, libapplicatio и т. д. Чтобы увидеть, как это может быть опасно, попробуйте (без корня для двойной безопасности) apt-get -s remove "wine*" (-s будет имитировать вещь вместо того, чтобы делать это) --- она ​​скажет, что она удалит все пакеты, которые имеет «выигрыш» в их имени и зависимую, почти всю систему ...

Возможно, команда, которая имела в виду, действительно

sudo apt-get remove "^application.*"

(обратите внимание на кавычки и точка), которая удалит все пакеты, имя которых начинается с application.

Эти команды,

sudo updatedb # <-- updates the locate database (index). harmless sudo locate application # <-- locates the file 'application'. harmless sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.

полностью выходят за рамки управления пакетами. Не удаляйте файлы, принадлежащие пакетам, без использования диспетчера пакетов!

Если вы не знаете, к какому пакету принадлежит файл, попробуйте следующее:

dpkg -S /path/to/file
618
ответ дан 17 July 2018 в 16:13

Для Ubuntu 12.04 и, возможно, выше, правильный метод:

sudo apt-get --purge autoremove packagename

Как подробно описано здесь.

Не используйте packagename*, поскольку это может удалить непреднамеренные пакеты и вызвать больше проблем, чем решает. Или, если вам нужно, хотя бы запустить его с флагом -s, --simulate, --dry-run, чтобы увидеть, что именно будет делать, не делая этого.

88
ответ дан 17 July 2018 в 16:13

Я получил некоторые сообщения об ошибках, удаляющие пакет, единственный способ, которым я нашел, что это работает:

mv /var/lib/dpkg/info/package.* /tmp/ dpkg --remove --force-remove-reinstreq package

Я обнаружил, что хотя использование только

dpkg --remove --force-remove-reinstreq package

не удалите пакет, он покажет мне правильный путь к файлу, который будет перемещаться с помощью:

mv /var/lib/dpkg/info/package.* /tmp/

Заменить пакет с вашим именем приложения. Используйте sudo в Ubuntu, станьте root в Debian.

5
ответ дан 17 July 2018 в 16:13

Это зависит от приложения, которое вы хотите удалить. Всегда проверяйте его зависимости перед выдачей команды yes. Когда вы удаляете что-то по командной строке, оно иногда отображает несколько библиотек, которые больше не нужны. Их можно удалить с помощью apt-get autoremove.

Остерегайтесь, что с помощью таких команд, как sudo apt-get remove --purge, имя приложения может удалить некоторые зависимости, которые необходимы другим приложениям и, как таковые, может нарушить работу вашей системы.

Если вы хотите сделать это более безопасным способом, вы всегда можете удалить его, используя только программный центр или apt-get, чтобы удалить имя приложения. Если зависимости больше не нужны, введите apt-get autoremove позже.

1
ответ дан 17 July 2018 в 16:13

Вы можете использовать эту команду:

sudo apt-get purge --auto-remove packagename

Он очистит необходимые пакеты вместе с зависимостями, которые установлены с этими пакетами. Опция --auto-remove (являющаяся псевдонимом autoremove) работает аналогично sudo apt-get autoremove. Используя эту команду, мы можем запустить одну команду:

sudo apt-get purge --auto-remove packagename

Вместо:

sudo apt-get purge packagename sudo apt-get autoremove
16
ответ дан 17 July 2018 в 16:13

Вы можете безопасно использовать sudo apt-get remove --purge application или sudo apt-get remove applications 99% времени. Когда вы используете флаг purge, он просто удаляет все файлы конфигурации. Что может быть или не быть тем, что вы хотите, в зависимости от того, хотите ли вы переустановить указанное приложение. [F5] будет соответствовать всем приложениям, начинающимся с application, которые обычно являются плагинами, дополнительными функциями и т. Д. Основного приложения, которое вы удаляете. т. е.

sudo apt-get remove gedit*

удалят gedit, gedit-plugins и gedit-common. Как правило, это не обязательно делать, потому что большинство подключаемых модулей / связанных программ зависят от основного приложения и автоматически удаляются (или помечены для удаления) при удалении основного приложения.

Ваша последняя команда - просто удалить остатки из приложений, которые, как известно, имеют беспорядочные деинсталляторы, и это просто удаление любых остатков приложения.

6
ответ дан 17 July 2018 в 16:13

Я нашел эту команду в Интернете.

dpkg --purge --force-depends application

http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems.

3
ответ дан 17 July 2018 в 16:13
apt-get remove packagename удалит двоичные файлы, но не файлы конфигурации или данных пакета packagename. Он также будет оставлять зависимостями, установленными с ним, во время установки нетронутыми. apt-get purge packagename или apt-get remove --purge packagename удалят все, что касается пакета packagename, но не установлены зависимости, установленные с ним при установке. Обе команды эквивалентны. Особенно полезно, когда вы хотите «начать все» с приложения, потому что вы испортили конфигурацию. Однако он не удаляет файлы конфигурации или данных, находящиеся в домашних каталогах пользователей, обычно в скрытых папках. Нелегко также удалить их. apt-get autoremove удаляет потерянные пакеты, то есть установленные пакеты, которые раньше устанавливались как зависимые, но не более. Используйте это после удаления пакета с установленными зависимостями, которые вам больше не интересны. [F11] или aptitude purge packagename (аналогичным образом) также попытаются удалить другие пакеты, которые были необходимы packagename, но не требуются ни при каких оставшихся пакеты. Обратите внимание, что aptitude запоминает только информацию о зависимостях для пакетов, которые она установила.

И еще много существует. Менеджеры нижнего уровня dpkg могут использоваться (расширенные) или графические инструменты, такие как Muon, Synaptic, Software Center и т. Д. Не существует единого «правильного пути» для удаления приложений или выполнения других задач, взаимодействующих с вашим управлением пакетами.

Список, который вы нашли, является просто примером. Удостоверьтесь, что вы понимаете значения и проверяете, что он хочет сделать, прежде чем принимать действие (вам нужно нажать Y, прежде чем он действительно выполнит действия, как было предложено).

Версия звездочки в вопросе Не существует единого «правильного пути» удаления приложений или выполнения других задач, взаимодействующих с вашим управлением пакетами. ; apt-get принимает регулярное выражение, а не шаблон glob в качестве оболочки. Итак, что происходит с

sudo apt-get remove application*

, следующее:

Оболочка пытается развернуть application*, глядя на файлы в текущем каталоге. Если (как обычно бывает), он ничего не находит, он возвращает шаблон шара без изменений (предположим, что bash с поведением по умолчанию здесь --- zsh будет выходить из строя). apt-get удалит пакеты, имя которых содержит строку, которая удовлетворяет регулярному выражению application*, то есть applicatio, за которым следует произвольное число n: applicatio, application, applicationn, libapplicatio и т. д. Чтобы увидеть, как это может быть опасно, попробуйте (без корня для двойной безопасности) apt-get -s remove "wine*" (-s будет имитировать вещь вместо того, чтобы делать это) --- она ​​скажет, что она удалит все пакеты, которые имеет «выигрыш» в их имени и зависимую, почти всю систему ...

Возможно, команда, которая имела в виду, действительно

sudo apt-get remove "^application.*"

(обратите внимание на кавычки и точка), которая удалит все пакеты, имя которых начинается с application.

Эти команды,

sudo updatedb # <-- updates the locate database (index). harmless sudo locate application # <-- locates the file 'application'. harmless sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.

полностью выходят за рамки управления пакетами. Не удаляйте файлы, принадлежащие пакетам, без использования диспетчера пакетов!

Если вы не знаете, к какому пакету принадлежит файл, попробуйте следующее:

dpkg -S /path/to/file
621
ответ дан 23 July 2018 в 17:07
  • 1
    Опция -purge также удобна при попытке полностью удалить любые остальные зависимости, включая их файлы конфигурации: apt-get-autoremove --purge Также важно отметить, что в файлах конфигурации в вашем домашнем каталоге не влияет опция -purge. Это вам нужно будет удалить вручную. – Glutanimate 15 September 2012 в 03:16
  • 2
    Здесь была ошибка: apt-get принимает RE, а не globs; поэтому apt-get remove pack * удалит все пакеты, которые начинаются с pac, за которым следуют ноль или более k ... что обычно является неожиданным. Я редактировал anser. См. Также askubuntu.com/questions/210976/… – Rmano 9 October 2014 в 16:12
  • 3
    Я думаю, что этот ответ больше не точен. Либо apt remove -s texlive*, либо его apt-get обратные линии, такие как Note, selecting 'texlive-font-utils' for glob 'texlive*' (подразумевая, что они действительно принимают глобусы), за которыми следуют обычные Package 'texlive-common' is not installed, so not removed и, наконец, Remv строки, такие как Remv texlive-font-utils [2015.20160320-1] [...]. – Jonathan Y. 12 June 2017 в 18:34
  • 4
    @JonathanY. Вы также должны выбрать не установленные пакеты. Во всяком случае, не могли бы вы задать новый вопрос и подробнее рассказать о своей ситуации в вопросе. Я был бы рад посмотреть на это :) – gertvdijk 13 June 2017 в 23:56
  • 5
    Я не задаю новый вопрос. Я указываю на возможное изменение, поскольку этот ответ был сделан, что делает некоторые детали неверными. Кажется, что apt-get remove packa* действительно принимает glob packa* вместо того, чтобы смотреть на него как на регулярное выражение: он соответствует package, но не pack. – Jonathan Y. 14 June 2017 в 00:18

Для Ubuntu 12.04 и, возможно, выше, правильный метод:

sudo apt-get --purge autoremove packagename

Как подробно описано здесь.

Не используйте packagename*, поскольку это может удалить непреднамеренные пакеты и вызвать больше проблем, чем решает. Или, если вам нужно, хотя бы запустить его с флагом -s, --simulate, --dry-run, чтобы увидеть, что именно будет делать, не делая этого.

88
ответ дан 23 July 2018 в 17:07

Я получил некоторые сообщения об ошибках, удаляющие пакет, единственный способ, которым я нашел, что это работает:

mv /var/lib/dpkg/info/package.* /tmp/ dpkg --remove --force-remove-reinstreq package

Я обнаружил, что хотя использование только

dpkg --remove --force-remove-reinstreq package

не удалите пакет, он покажет мне правильный путь к файлу, который будет перемещаться с помощью:

mv /var/lib/dpkg/info/package.* /tmp/

Заменить пакет с вашим именем приложения. Используйте sudo в Ubuntu, станьте root в Debian.

5
ответ дан 23 July 2018 в 17:07

Это зависит от приложения, которое вы хотите удалить. Всегда проверяйте его зависимости перед выдачей команды yes. Когда вы удаляете что-то по командной строке, оно иногда отображает несколько библиотек, которые больше не нужны. Их можно удалить с помощью apt-get autoremove.

Остерегайтесь, что с помощью таких команд, как sudo apt-get remove --purge, имя приложения может удалить некоторые зависимости, которые необходимы другим приложениям и, как таковые, может нарушить работу вашей системы.

Если вы хотите сделать это более безопасным способом, вы всегда можете удалить его, используя только программный центр или apt-get, чтобы удалить имя приложения. Если зависимости больше не нужны, введите apt-get autoremove позже.

1
ответ дан 23 July 2018 в 17:07
  • 1
    Я думаю, что вся система пакетов Debian была специально разработана для not удалять пакет, если на нем есть другие пакеты. Вы можете (полезно) спросить, хотите ли вы также удалить все зависимые пакеты, и именно там вы должны прочитать список пакета, который должен быть удален, что я думаю [ ! d2], что вы пытаетесь сказать. – Xen2050 25 February 2015 в 15:07

Вы можете использовать эту команду:

sudo apt-get purge --auto-remove packagename

Он очистит необходимые пакеты вместе с зависимостями, которые установлены с этими пакетами. Опция --auto-remove (являющаяся псевдонимом autoremove) работает аналогично sudo apt-get autoremove. Используя эту команду, мы можем запустить одну команду:

sudo apt-get purge --auto-remove packagename

Вместо:

sudo apt-get purge packagename sudo apt-get autoremove
16
ответ дан 23 July 2018 в 17:07
  • 1
    Хотя вы правы, но можно также использовать sudo apt-get --purge autoremove packagename. Та же 1 команда здесь – Anwar 23 August 2016 в 21:03
  • 2
    Может ли полная команда также быть записана как apt-get autoremove --purge вместо apt-get purge --auto-remove? – felwithe 7 November 2016 в 22:41
  • 3
    Может кто-нибудь, пожалуйста, застрелите меня? – Martin Andersson 26 December 2017 в 22:17

Вы можете безопасно использовать sudo apt-get remove --purge application или sudo apt-get remove applications 99% времени. Когда вы используете флаг purge, он просто удаляет все файлы конфигурации. Что может быть или не быть тем, что вы хотите, в зависимости от того, хотите ли вы переустановить указанное приложение. [F5] будет соответствовать всем приложениям, начинающимся с application, которые обычно являются плагинами, дополнительными функциями и т. Д. Основного приложения, которое вы удаляете. т. е.

sudo apt-get remove gedit*

удалят gedit, gedit-plugins и gedit-common. Как правило, это не обязательно делать, потому что большинство подключаемых модулей / связанных программ зависят от основного приложения и автоматически удаляются (или помечены для удаления) при удалении основного приложения.

Ваша последняя команда - просто удалить остатки из приложений, которые, как известно, имеют беспорядочные деинсталляторы, и это просто удаление любых остатков приложения.

6
ответ дан 23 July 2018 в 17:07

Я нашел эту команду в Интернете.

dpkg --purge --force-depends application

http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems.

3
ответ дан 23 July 2018 в 17:07

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

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