Я искал в сети такую информацию и нашел разные командные строки, например, такие:
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)
Вы можете использовать эту команду:
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
Ubuntu 12.04 და შესაძლოა უფრო მაღალი ვერსიისთვის, სწორი მეთოდია:
sudo apt-get --purge autoremove packagename
დაწვრილებით აქ .
ნუ გამოიყენებთ პაკეტის სახელს *
, რადგან ამან შეიძლება წაშალოთ არასასურველი პაკეტები და უფრო მეტი პრობლემა გამოიწვიოს ვიდრე გადაწყვეტს. ან თუ მოგიწევთ, მინიმუმ გაუშვით -s
, - სიმულაცია
, - მშრალი გაშვებული
დროშით, რომ ნახოთ ზუსტად რას გააკეთებს ამის გარეშე.
Вы можете безопасно использовать sudo apt-get remove --purge application
или sudo apt-get remove applications
в 99% случаев. При использовании флага purge
, он просто удаляет все файлы конфигурации. Который может быть или не быть тем, что вы хотите, в зависимости от того, хотите ли вы переустановить указанное приложение. Приложение app*
будет соответствовать всем приложениям, которые начинаются с application
, которые обычно являются плагинами, дополнительными функциями, и т.д. основного приложения, которое вы удаляете, т.е.
sudo apt-get remove gedit*
удалит gedit
, gedit-плагины
и 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.
apt-get delete packagename
удалит двоичные файлы, но не конфигурационные или информационные файлы пакета packagename
. Также будут удалены зависимости, установленные с пакетом во время установки.
apt-get delete --purge packagename
или apt-get remove --purge packagename
удалит около всего, что касается имени пакета packagename
, но не зависимости, установленные с пакетом во время установки. Обе команды эквивалентны.
Особенно полезно, когда вы хотите "запустить все заново" с приложением, так как вы испортили конфигурацию. Однако, она не удаляет конфигурационные или информационные файлы, находящиеся в домашних каталогах пользователей, обычно в скрытых папках. Удалить их также непросто.
apt-get autoremove
удаляет осиротевшие пакеты, т.е. инсталлированные пакеты, которые раньше устанавливались как зависимые, но больше не являются таковыми. Используйте это после удаления пакета, который имел установленные зависимости, которые вас больше не интересуют.
aptitude remove packagename
или aptitude cleange packagename
(аналогично)
будет также пытаться удалить другие пакеты, которые требовались для packagename
, но которые не требуются для оставшихся пакетов. Обратите внимание, что aptitude
запоминает только информацию о зависимостях для установленных им пакетов.
И многое другое существует. Нижний уровень dpkg
-команды могут быть использованы (расширенные) или такие графические инструменты, как Muon, Synaptic, Software Center и т.д. - не существует единого "правильного" способа удаления приложений или выполнения других задач, взаимодействующих с вашим управлением пакетами.
- список, который вы нашли, является всего лишь примерами. Убедитесь, что вы поняли значения и попробуйте, что он хочет сделать, прежде чем принять действие (вам нужно нажать Y
, прежде чем он на самом деле выполнит предложенные действия).
Версия со звездочкой в вопросе вероятно неправильная ; apt-get
принимает регулярное выражение, а не шаблон глобуса в качестве оболочки. Так что происходит с
sudo apt-get remove application*
следующим:
оболочка пытается развернуть приложение*
, глядя на файлы в текущем каталоге. Если (как обычно) она ничего не находит, она возвращает шаблон глобуса без изменений (предполагая, что bash
с поведением по умолчанию здесь --- zsh
выдаст ошибку).
apt-get
удалит пакеты, имя которых содержит строку , удовлетворяющую регулярному выражению application*
, т.е. appicatio
, за которым последует произвольное число n
: applicatio
, application
, applicationn
, libapplicatio
, etc.
Чтобы посмотреть, как это может быть опасно, попробуйте (без root для двойной безопасности) apt-get -s удалит "wine*"
(-s
будет симулировать вещь вместо того, чтобы делать это) --- будет сказано, что удалит все пакеты, в имени которых есть "win" и зависимая вещь, почти всю систему. ...
Вероятно, задуманная команда действительно
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
Это зависит от приложения, которое вы хотите удалить. Всегда проверяйте его зависимости перед выдачей команды yes. Когда вы удаляете что-то командной строкой, иногда показывается горстка библиотек, которые больше не нужны. Они могут быть удалены с помощью apt-get autoremove.
Остерегайтесь, что при использовании таких команд, как sudo apt-get remove --purge имя приложения может удалить некоторые зависимости, которые необходимы другим приложениям, и, как следствие, может сломать вашу систему.
Если вы хотите сделать это более безопасным способом, вы всегда можете удалить его, используя только центр программного обеспечения или apt-get удалить имя приложения. Если зависимость больше не нужна, выпустите apt-get get autoremove позже.
Я просто хотел прояснить одну вещь, которая кажется источником путаницы здесь.
Утилита dpkg
не знает или не отслеживает зависимости пакетов друг от друга, что было большой причиной, по которой была разработана apt
, как мне кажется. Вы можете прочитать об этом в разделе 8.6 на этой странице The Debian GNU/Linux FAQ - The Debian package management tools
With apt: Если бы я хотел очистить пакет A, и у него есть зависимость называется пакетом Б, и у пакета Б не было других зависимых пакетов, то есть пакет А и Б будет очищен. Если у пакета B DID есть другие зависимые пакеты, тогда будет очищен только пакет A.
с dpkg: Какая зависимость? Вы только что сказали мне очистить чертову
посылка, так что это то, что я сделал! Плохое планирование с твоей стороны не
С учетом вышесказанного, вот два одинарных лайнера, которые можно использовать для каждого метода очистки:
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --dry-run --purge
apt-get autoremove -y; apt-get --dry-run purge -y $(dpkg --list |grep '^rc' |awk '{print $2}')
-удалить -сухой прогон
для выполнения фактической операции очистки вместо того, чтобы сообщать, какие действия она бы предприняла.
Чтобы удалить все, что касается имени пакета пакета, например данные и конфигурацию, но не зависимости, установленные с ним при установке, используйте:
apt-get remove --purge packagename