Каков правильный способ полностью удалить приложение?
Я искал сеть для такой информации и нашел разные командные строки, такие как:
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)
7 ответов
-
apt-get remove packagename
удалит двоичные файлы, но не файлы конфигурации или данных пакета
packagename
. Он также оставит зависимостям, установленным с ним, при установке без изменений. -
apt-get purge packagename
илиapt-get remove --purge packagename
удалит около все в отношении пакета
packagename
, но не зависимости, установленные с ним при установке. Обе команды эквивалентны.Особенно полезно, когда вы хотите «начать все» с приложения, потому что вы испортили конфигурацию. Однако он не удаляет файлы конфигурации или данных, находящиеся в домашних каталогах пользователей, обычно в скрытых папках. Также нет простого способа удалить их.
-
apt-get autoremove
удаляет потерянные пакеты, то есть установленные пакеты, которые раньше устанавливались как зависимые, но не более. Используйте это после удаления пакета с установленными зависимостями, которые вам больше не интересны.
-
aptitude remove packagename
или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
и т. д. -
Чтобы узнать, как это может быть опасно, попробуйте (без root для двойной безопасности)
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
Для Ubuntu 12.04 и, возможно, выше, правильный метод:
sudo apt-get --purge autoremove packagename
Как подробно описано здесь .
Не используйте packagename*
, поскольку это может удалить непреднамеренные пакеты и вызвать больше проблем, чем решает. Или, если вам нужно, по крайней мере, запустить его с флагом -s
, --simulate
, --dry-run
, чтобы увидеть, что именно он сделает это без этого.
Вы можете использовать эту команду:
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
Вы можете безопасно использовать sudo apt-get remove --purge application
или sudo apt-get remove applications
в 99% случаев. Когда вы используете флаг purge
, он просто удаляет все файлы конфигурации. Что может быть или не быть тем, что вы хотите, в зависимости от того, хотите ли вы переустановить указанное приложение. Приложение application*
будет соответствовать всем приложениям, начинающимся с application
, которые обычно являются плагинами, дополнительными функциями и т. Д. Основного приложения, которое вы удаляете. т. е.
sudo apt-get remove gedit*
удалит gedit
, gedit-plugins
и gedit-common
. Как правило, это не обязательно делать, потому что большинство подключаемых модулей /связанных программ зависят от основного приложения и автоматически удаляются (или помечены для удаления) при удалении основного приложения.
Ваша последняя команда - просто удалить остатки из приложений, которые, как известно, имеют беспорядочные деинсталляторы, и просто удаляют остатки приложения.
У меня есть сообщения об ошибках, удаляющие пакет, единственный способ, которым я нашел, что это было:
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.
Я нашел эту команду в Интернете.
dpkg --purge --force-depends application
http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems .
Это зависит от приложения, которое вы хотите удалить. Всегда проверяйте его зависимости перед выдачей команды yes. Когда вы удаляете что-то по командной строке, оно иногда отображает несколько библиотек, которые больше не нужны. Их можно удалить с помощью apt-get autoremove.
Помните, что с помощью таких команд, как sudo apt-get remove --purge, имя приложения может удалять некоторые зависимости, которые необходимы другим приложениям и, как таковые, может нарушить работу вашей системы.
Если вы хотите сделать это более безопасным способом, вы всегда можете удалить его, используя только программный центр или apt-get, чтобы удалить имя приложения. Если зависимости больше не нужны, введите apt-get autoremove позже.