Debian как удалить пакет
Изменение состояний пакетов, как это описано в предыдущем разделе, в действительности не влияет на то, что установлено в вашей системе. Таким образом, вы можете корректировать состояния пакетов без влияния на вашу систему до тех пор, пока вы не будете удовлетворены тем, что видите; как только вы будете удовлетворены, вы можете действительно « внести » изменения, фактически установив или удалив пакеты. [8]
Чтобы внести ваши изменения, используйте команду Действия → Установить/удалить пакеты ( g ). Выбор этой команды приведёт к отображению окна предпросмотра, описывающего изменения, которые будут выполнены. Это окно является простым списком пакетов, и вы можете манипулировать пакетами (например, отменяя нежелательные удаления) так же как вы делаете это в основном списке.
Когда вы закончите работу с предварительным просмотром изменения, используйте команду Окна → Закрыть ( q ), чтобы отменить установку, либо используйте команду Действия → Установить/удалить пакеты ( g ) для продолжения. aptitude загрузит все файлы, которые следует загрузить и пригласит вас продолжить установку. Когда вы выберите « Продолжить » , начнутся установки и удаления.
Пакеты, загруженные aptitude помещаются в каталог кэша (по-умолчанию в /var/cache/apt/archives ). Обычно они бесконечно хранятся в каталоге. Чтобы удалить все файлы в этом каталоге, используйте Действия → Очистить кэш пакетов ; чтобы удалить только те файлы, которые не могут быть загружены снова (то есть, устаревшие пакеты), используйте Действия → Очистить устаревшие файлы .
[8] Иногда это обозначается как « установочный запуск » , даже несмотря на то, что вы, может быть, обновляете или удаляете какие-то пакеты в дополнение к установке пакетов.
Изменение состояний пакета | Понимание и управление надёжностью пакетов |
Удаление пакетов Debian
Мы довольно часто устанавливаем новые пакеты в свою систему, например, нам нужно решить определенную задачу и мы ставим все программы, которые могут помочь и проверяем их по очереди, но будет лучше если в системе не будет ненужных программ.
Это повысит вашу безопасность. В этой статье мы рассмотрим как выполняется удаление пакетов Debian различными способами, рассмотрим как удалить пакет имя которого вы знаете, а также как удалить все ненужные пакеты из системы.
Удаление пакетов Debian
Самый простой способ удалить программу Debian, которая вам больше не нужна — это воспользоваться пакетным менеджером apt. Просто используйте команду apt remove:
$ sudo apt-get remove имя_программы
Или можно удалить все пакеты, которые касаются этой программы, например:
$ sudo apt-get remove имя_программы*
Например, удалим установленный по умолчанию почтовый клиент evolution. Если бы мы использовали звездочку, то были бы удаленны все пакеты, имя которых начинается на evolution, например, evolution-data и evolution-plugins.
sudo apt-get remove evolution
Но при таком способе удаления в системе могут оставаться конфигурационные файлы программы, а также дополнительные пакеты. Чтобы удалить конфигурационные файлы можно использовать опцию —purge или команду purge:
sudo apt-get —purge remove evolution
А чтобы выполнить удаление пакетов debian, которые больше не нужны после установки используйте опцию —auto-remove, она аналогична запуску apt с командой autoremove:
sudo apt-get —purge —auto-remove remove evolution
sudo apt-get purge —auto-remove evolution
Последняя команда выполняет полное удаление пакета из системы. Но чтобы удалить пакет вам нужно сначала знать его имя. Имя пакета можно узнать с помощью утилиты dpkg. Сначала ищем какие-либо файлы программы по ее названию, например, тот же evolution:
find / -name evolution
Дальше смотрим имя пакета, которому принадлежит выбранный файл:
sudo dpkg -S /usr/bin/evolution
А дальше, уже на основе полученной информации вы можете удалить лишний пакет. Рассмотрим как удалить пакет Debian с помощью dpkg, для этого есть опция -r или —remove. Но тут вам придется указать все зависимости:
sudo dpkg —remove evolution evolution-plugins
У dpkg есть свой аналог команды purge, это опция -p или —purge, которая позволяет удалить пакет Debian полностью и не оставлять никаких конфигурационных файлов в системе:
sudo dpkg —purge evolution evolution-plugins
Если пакет не удаляется потому что был поврежден или была повреждена база пакетов, а вы считаете что удаление именно этого пакета может спасти ситуацию, то используйте опцию —force-remove-reinstreq:
sudo dpkg —remove —force-remove-reinstreq имя_пакета
Также можно использовать опцию —force-depends, чтобы не удалять пакеты, которые зависят от удаляемого:
sudo dpkg -r —force-depends имя_пакета
Иногда, во время удаления пакетов, некоторые зависимости остаются в системе, например, рекомендованные пакеты. Их тоже можно удалить чтобы освободить место и не держать лишнего на компьютере. Для этого используется программа deborphan. Для начала вам нужно будет ее установить:
sudo apt-get install deborphan
Затем для поиска всех пакетов, которые можно удалить наберите:
Дальше вы можете удалить каждый пакет из списка вручную с помощью apt-get или dpkg. Если вы уже знаете, что все пакеты, которые будут удалены не нужны, то можно объединить команду deborphan с xargs и автоматически их все сразу удалить:
deborphan | xargs sudo apt-get -y remove —purge
Имя каждого пакета будет подставлено в конец строки.
Удаление пакетов в GUI
Пакеты можно удалять не только через терминал, но и через графический интерфейс. В Debian используется окружение рабочего стола Gnome, поэтому там доступен центр приложений Gnome Software. Вы можете запустить его из главного меню системы:
Затем перейдите на вкладку «Установлено»:
Вам осталось выбрать приложение, которое хотите удалить, а затем нажать кнопку «Удалить»:
После этого вам нужно будет ввести пароль пользователя, а затем дождаться завершения удаления. Как видите, все очень просто.
Выводы
В этой статье мы рассмотрели как выполняется удаление программ debian несколькими способами. Как видите, это достаточно просто. Если вы имеете немного опыта использования терминала, то сможете получить все его преимущества, в противном же случае можете использовать графический интерфейс. Если у вас остались вопросы, спрашивайте в комментариях!
debian — удалить пакет полностью
Есть debian 10, ищу способ простым путём снести конкретный пакет и вообще ВСЕ директории, конфиги, ресурсы, etc, которые он насоздавал при установке.
apt remove --kill-it-with-the-fire mariadb-client mariadb-server
и удаляется абсолютно всё, что мускуль насоздавал при установке. —purge и autoremove этого не делают — пакеты ТИПА удалились, но сам сервис продолжает жужжать в памяти, в /etc и /var/lib всё на месте. Если сервис руками перед удалением остановить, то же самое.
Если это вообще не предусмотрено, как выкатить из пакетов всё вышеописанное ещё раз с затиранием существующего? Только из пакетов руками вытаскивать файлы?
yu-boot ★★★★
07.04.22 15:00:06 MSK
пакеты ТИПА удалились, но сам сервис продолжает жужжать
Ты не тот пакет удаляешь.
LamerOk ★★★★★
( 07.04.22 15:01:01 MSK )
Ответ на: комментарий от LamerOk 07.04.22 15:01:01 MSK
Посмотрел, устанавливал я именно mariadb-server и mariadb-client, больше касательно мускуля ничего не ставил. Хочу, чтобы удалив их, система автомагически вернулась к состоянию «до установки мускуля».
yu-boot ★★★★
( 07.04.22 15:03:56 MSK ) автор топика
Ответ на: комментарий от yu-boot 07.04.22 15:03:56 MSK
А удалял ты кого?
сам сервис продолжает жужжать
Мамой клянёшься? Зуб даёшь?
LamerOk ★★★★★
( 07.04.22 15:05:57 MSK )
пакет это одно, листинг его содержимого сохраняется.
а все пользовательские данные это другое…
pfg ★★★★★
( 07.04.22 15:06:26 MSK )
Ответ на: комментарий от LamerOk 07.04.22 15:05:57 MSK
- name: "Install MariaDB" become: yes apt: update_cache: yes name: - mariadb-server - mariadb-client state: latest register: mariadb_install
# apt remove --purge mariadb-client mariadb-server # apt autoremove
В htop процессы мускуля как висели так и висят. Кстати, со всеми сервисами так. nginx если удалить или asterisk, они тоже не стопятся сами и висят в процессах.
yu-boot ★★★★
( 07.04.22 15:10:03 MSK ) автор топика
Ответ на: комментарий от pfg 07.04.22 15:06:26 MSK
Ну оно же создаёт при установке /var/lib/mysql всякие. Не важно что там потом внутри будет, папку создал — папку эту же снеси рекурсивно. Неужели нет возможности не копаясь вручную в пакете такое сделать?
yu-boot ★★★★
( 07.04.22 15:12:05 MSK ) автор топика
Ответ на: комментарий от yu-boot 07.04.22 15:10:03 MSK
Я не вижу логов апта.
Я не вижу логов апта.
Я не вижу выхлопов ps .
LamerOk ★★★★★
( 07.04.22 15:13:52 MSK )
Ответ на: комментарий от LamerOk 07.04.22 15:13:52 MSK
# apt remove --purge mariadb-client mariadb-server Reading package lists. Done Building dependency tree Reading state information. Done The following packages will be REMOVED: mariadb-client* mariadb-server* 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. After this operation, 137 kB disk space will be freed. Do you want to continue? [Y/n] (Reading database . 51177 files and directories currently installed.) Removing mariadb-client (1:10.3.34-0+deb10u1) . Removing mariadb-server (1:10.3.34-0+deb10u1) . # apt autoremove Reading package lists. Done Building dependency tree Reading state information. Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Папки и процессы после этого были на месте, прежде чем писать вытер /var/lib/mysql сотоварищи и выключил mysqld руками.
yu-boot ★★★★
( 07.04.22 15:17:56 MSK ) автор топика
А текстовый редактор при сносе должен все документы удалять?
Elyas ★★★★★
( 07.04.22 15:23:43 MSK )
Ответ на: комментарий от yu-boot 07.04.22 15:17:56 MSK
After this operation, 137 kB disk space will be freed.
Как думаешь, ты реально удалил клиент и сервер?
Это метапакеты. autoremove —purge не срабатывает, вероятно, потому, что ты (либо что-то, что ты использовал) вручную установил то, что тянут эти пакеты по зависимостям (т.е., какой-нибудь mariadb-server-100500).
YAR ★★★★★
( 07.04.22 15:24:49 MSK )
Последнее исправление: YAR 07.04.22 15:26:39 MSK (всего исправлений: 2)
Ответ на: комментарий от YAR 07.04.22 15:24:49 MSK
вероятно, потому, что ты (либо что-то, что ты использовал) вручную установил то, что тянет эти пакеты по зависимостям
Кстати да, есть в демьянае такая фича. С одной стороны удобно, а с другой вот это всё
utanho ★★★★★
( 07.04.22 15:29:37 MSK )
Ответ на: комментарий от yu-boot 07.04.22 15:17:56 MSK
mariadb-server — пакет-пустышка, зависит от mariadb-server-10.3. Тот, в свою очередь, мог быть установлен вручную либо его держит какой-то пакет как зависимость.
undef ★★
( 07.04.22 15:30:35 MSK )
Последнее исправление: undef 07.04.22 15:31:16 MSK (всего исправлений: 1)
Ответ на: комментарий от utanho 07.04.22 15:29:37 MSK
А с другой — тоже удобно.
Если не понятно, чё реально стоит, а что удаляется — пользуйтесь aptitude .
LamerOk ★★★★★
( 07.04.22 15:30:47 MSK )
Ответ на: комментарий от undef 07.04.22 15:30:35 MSK
Можно почистить все удаленные без purge
apt-get purge $(dpkg -l | grep '^rc' | awk '')
Kolins ★★★
( 07.04.22 15:35:50 MSK )
Ответ на: комментарий от Kolins 07.04.22 15:35:50 MSK
Это про другое. А у ТСа пакет вообще не удаляется, т.к. либо промаркирован, либо является зависимостью еще для чего-то.
undef ★★
( 07.04.22 15:42:53 MSK )
Ответ на: комментарий от LamerOk 07.04.22 15:30:47 MSK
Я пошел другим путём. Сначала базовая система из бутстрапа, потом прописываю в апт.конф не ставить рекомендованные и прочую шелуху.
Потом в синаптике формирую список «установлены вручную».
Получается некий аналог world из генты.
Система не засирается и всё красиво. Но кое-что надо ставить руками. Поэтому нужно понимать, что и как
utanho ★★★★★
( 07.04.22 15:43:27 MSK )
Ответ на: комментарий от undef 07.04.22 15:42:53 MSK
Ну тогда проще в aptitude посмотреть на что ругается при удалении
Kolins ★★★
( 07.04.22 15:43:28 MSK )
Ответ на: комментарий от utanho 07.04.22 15:43:27 MSK
Норкоман? Это наглядная визуализация, кто от кого зависит, и чё в итоге будет после изменений.
LamerOk ★★★★★
( 07.04.22 15:53:46 MSK )
Ответ на: комментарий от utanho 07.04.22 15:43:27 MSK
Открой для себя debfoster .
LamerOk ★★★★★
( 07.04.22 15:54:21 MSK )
Ответ на: комментарий от LamerOk 07.04.22 15:54:21 MSK
О, никак не мог вспомнить название (а искать было лень).
И deborphan еще.
YAR ★★★★★
( 07.04.22 16:52:24 MSK )
Ответ на: комментарий от LamerOk 07.04.22 15:54:21 MSK
Любите советовать мягкое в разговоре про зеленое? Предлагаете сначала засрать систему, а потом героически вычищать эти авгиевы конюшни?
Спасибо, кушайте сами.
utanho ★★★★★
( 07.04.22 16:54:25 MSK )
Ответ на: комментарий от utanho 07.04.22 16:54:25 MSK
мягкое в разговоре про зеленое?
Ты не только норкоман, но ещё и идиот. debfoster — это искаробочное решение того, что рукоблудствуешь руками в синаптике.
LamerOk ★★★★★
( 07.04.22 17:04:27 MSK )
Ответ на: комментарий от LamerOk 07.04.22 17:04:27 MSK
Ты не только норкоман, но ещё и идиот
Чем слабее аргументация, тем сильнее бесит оппонент. Ну и само собой самое важное в споре — кидаться какашками. Так принято у приматов.
А теперь попробуйте описать последовательность действий при применении debfoster.
utanho ★★★★★
( 07.04.22 17:51:41 MSK )
В дебиане стоит установить aptitude или synaptic и там есть опция «вычистить» или «полное удаление». Все файлы и папки, созданные при установке вообще то удаляются и при обычном удалении. Эти опции предназначены для удаления конфигов (про которые известно, но которые не следует перезаписывать при обновлении). Но как известно программы при работе могут создавать папки и файлы про которые пакетный менеджер просто не может знать. С ними можно бороться толькол руками.
kirill_rrr ★★★★★
( 07.04.22 20:55:58 MSK )
Ответ на: комментарий от yu-boot 07.04.22 15:12:05 MSK
А при установке ли? Было бы при установке — удалило бы.
З.Ы. Кажется я немного не в теме. Ставишь ты mariadb, а запускается у тебя mysql. Это же вроде разные штуки.
kirill_rrr ★★★★★
( 07.04.22 21:12:23 MSK )
Ответ на: комментарий от kirill_rrr 07.04.22 21:12:23 MSK
Кажется я немного не в теме. Ставишь ты mariadb, а запускается у тебя mysql. Это же вроде разные штуки.
Да, не в теме. В современных пакетах mariadb только юнит mariadb.service называется (ранее был mysqld.service), а бинари и пути совместимы с «классическим» mysql (/var/lib/mysql, бинари mysql, mysqldump и прочие mysql* и каталог с конфигами /etc/mysql/). И это хорошо.
Dimez ★★★★★
( 08.04.22 12:41:08 MSK )
В постинсталле у пакета может быть написана любая наркомания, которая не будет трекаться штатными средствами пакетного менеджера, поэтому серебряной пули не существует.
slowpony ★★★★
( 08.04.22 12:49:36 MSK )
Ответ на: комментарий от yu-boot 07.04.22 15:10:03 MSK
apt remove –purge mariadb-client mariadb-server
Как тебе уже было выше сказано — ты удаляешь метапакеты, а надо apt purge mariadb-server* mariadb-client* mariadb-common mysql-common . В пакетную обработку ansible’ом не знаю как поставить, т.к. при удалении спрашивается «удалить ли /var/lib/mysql». Видимо, просто потом запустить команду rm -rf /var/lib/mysql
apt autoremove —purge
Dimez ★★★★★
( 08.04.22 12:58:43 MSK )
Последнее исправление: Dimez 08.04.22 12:59:16 MSK (всего исправлений: 1)
все линуксы это помойки. простите, slackware.
в самом безобидном варианте демон будет использовать /var/run и /var/lock, а далее /var/db и другие директории для хранения своего мусора.
если у вас случился приступ перфекционизма и вы хотите контролировать каждый файл в системе, то переходите на live-системы. вы будете знать, что вы можете творить любую дичь, а потом просто перезагрузиться и вернуть систему в исходное состояние. это просто.
если вы ищите sysadmin-friendly дистрибутив, чтобы иметь полный контроль над происходящем в системе, ставьте CRUX.
и наконец третий вариант, переходите на виртуалки. держите хост систему в чистоте, проще говоря, ставите чистую систему + qemu. всё. все сервисы разворачиваете в виртуалках. легко делать бэкап, легко откатить назад.
Spoofing ★★★★★
( 08.04.22 15:35:16 MSK )
Последнее исправление: Spoofing 08.04.22 15:35:41 MSK (всего исправлений: 1)
Bootmen ☆☆☆
( 08.04.22 16:11:20 MSK )
Ответ на: комментарий от Spoofing 08.04.22 15:35:16 MSK
третий вариант напоминает моднявый, в современной среде обывателей, вариант использования TOR в качестве proxy-доступов в обход ограничений.
и плач потом «почему TOR так медленно работает»
для того чтобы иметь полный контроль над происходящим, в этом происходящем надо разбираться и понимать что к чему и почему.
любые программные системы, применяемые без понимания сути работы онной системы, приводят к естественным недопониманиям работы онной системы и последующим косякам.
удаления пакета веб-сервера не должно приводит к удалению /var/www — «это другое !!»
pfg ★★★★★
( 08.04.22 22:33:59 MSK )
Последнее исправление: pfg 08.04.22 22:35:46 MSK (всего исправлений: 1)
Я дико извиняюсь, почему в треде никто не упомянул про apt autoremove? Если установленные вопрошающим пакеты — это заглушки, и они зависимостями тянут реальные, то не решит ли autoremove проблему?
apt purge apt autoremove
paddlewan
( 08.04.22 22:49:53 MSK )
Последнее исправление: paddlewan 08.04.22 22:51:10 MSK (всего исправлений: 2)
Ответ на: комментарий от Elyas 07.04.22 15:23:43 MSK
LongLiveUbuntu ★★★★★
( 09.04.22 07:51:42 MSK )
Ответ на: комментарий от utanho 07.04.22 17:51:41 MSK
А теперь попробуйте описать последовательность действий при применении debfoster.
root@host1 ~ # debfoster . Keep xfsprogs? [Ynpsiuqx?], [H]elp: Y Keep acl? [Ynpsiuqx?], [H]elp: Y Keep acpid? [Ynpsiuqx?], [H]elp: Y Keep amd64-microcode? [Ynpsiuqx?], [H]elp: Y Keep ethtool? [Ynpsiuqx?], [H]elp: Y Keep firmware-bnx2x? [Ynpsiuqx?], [H]elp: Y Keep grub-efi-amd64? [Ynpsiuqx?], [H]elp: Y Keep grub-pc-bin? [Ynpsiuqx?], [H]elp: Y Keep mdadm? [Ynpsiuqx?], [H]elp: Y Keep sudo? [Ynpsiuqx?], [H]elp: Y . root@host1 ~ # cp /var/lib/debfoster/keepers .
root@host2 ~ # debfoster `cat keepers`
LamerOk ★★★★★
( 11.04.22 19:23:25 MSK )
Ответ на: комментарий от LamerOk 11.04.22 19:23:25 MSK
Что собсно и требовалось доказать. Ваш вариант предполагает установку системы с кучей мусора и героическую боротьбу с ним.
Мой вариант предусматривает установку системы без мусора изначально.
Так что прежде чем исторгать из себя словесные фекалии, постарайтесь все же читать комментарии, на которые отвечаете.
utanho ★★★★★
( 11.04.22 19:27:03 MSK )
Последнее исправление: utanho 11.04.22 19:28:51 MSK (всего исправлений: 1)
Ответ на: комментарий от utanho 11.04.22 19:27:03 MSK
Напомни, я тебе уже говорил, что ты идиот, или ещё нет?
Ваш вариант предполагает установку системы с кучей мусора
И что именно является «кучей мусора» в netinstall ? И да, дебьян по дефолту ставит всевозможные reportbug , которые таки надо^W можно в любом случае удалять. Это неизбежный шаг при любой установке.
Как удалить пакет, установленный из deb файла?
Скачал с официального сайта deb пакет для VirtualBox 6 версии.
Поставил.
В консоли появилась команда virtualbox.
Оказалось, что для работы мне нужна 5 версия.
Пытаюсь удалить установленную утилиту:
sudo apt remove --purge virtualbox
А мне говорят:
Package 'virtualbox' is not installed, so not removed
Как мне удалить данную утилиту?
Отслеживать
задан 20 июл 2020 в 21:06
1,236 2 2 золотых знака 11 11 серебряных знаков 29 29 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Смотрим откуда запускается команда:
Узнаем имя пакета
dpkg -S fullpath где fullpath полный путь к исполняемому файлу (взять из результата предыдущей команды)
Удаляем используя имя пакета
dpkg —remove packagename где packagename имя пакета (взять из результата предыдущей команды)
Отслеживать
ответ дан 20 июл 2020 в 21:42
2,261 1 1 золотой знак 8 8 серебряных знаков 11 11 бронзовых знаков
дополнительные пути определения имени (помимо предложенного в соседнем ответе):
- уже по имени файла (если оно формировалось по принятым правилам и не изменялось впоследствии) можно определить имя пакета: это все символы до первого символа _ . например, если имя файла — virtualbox-6.1_6.1.12-139181~Debian~buster_amd64.deb , то имя пакета, содержащегося внутри — virtualbox-6.1 .
- если файл подвергался переименованию, но пока не удалён, можно узнать имя содержащегося в нём пакета, например, с помощью программы dpkg-deb :
$ dpkg-deb -f virtualbox-6.1_6.1.12-139181~Debian~buster_amd64.deb Package virtualbox-6.1
$ dpkg -l '*box*' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===========================-=======================-============-=========== ii busybox 1:1.30.1-4 amd64 Tiny utilit ii virtualbox-6.1 6.1.12-139181~Debian~bu amd64 blablablabl .
впрочем, и программам apt/apt-get можно передавать не только точное имя пакета, но и маску, под которую подпадает имя:
$ sudo apt-get remove 'virtualbox*'