Apt get autoremove linux

Содержание
  1. Sysadminium
  2. Пакетные менеджеры apt
  3. Обновление системы
  4. Обновление кэша пакетов
  5. Получаем список возможных обновлений
  6. Обновление системы (без возможности удаления пакетов)
  7. Обновление системы (с возможностью удаления пакетов)
  8. Получение информации о пакетах из репозиториев
  9. Список пакетов в репозиториях
  10. Поиск пакета по ключевому слову
  11. Смотрим информацию о пакете
  12. Поиск зависимостей
  13. Работа с отдельными пакетами
  14. Установка пакета
  15. Удаление пакета без удаления конфигов
  16. Удаление пакета вместе с конфигами
  17. Переустановка пакета
  18. Обновление отдельного приложения
  19. Скачивание пакета без установки
  20. Заморозка пакета
  21. Исправление проблем с пакетами
  22. Исправление ошибок с зависимостями
  23. Очистка системы от ненужных пакетов
  24. Удаление ненужных пакетов
  25. Очистка кэша
  26. Мягкая очистка кэша
  27. Посмотрим на корову 🙂
  28. Итог
  29. Как полностью удалить пакет с зависимостями в Linux, использующим пакетный менеджер apt.

Sysadminium

На этом уроке рассмотрим пакетные менеджеры apt и apt-get. Которые используются для работы с пакетами приложений в Linux.

Пакетные менеджеры apt

На этом уроке мы рассмотрим следующие пакетные менеджеры:

  • apt-get — используется для установки, удаления, обновления пакетов;
  • apt-cache — используется для получения информации о пакетах;
  • apt-mark — используется для установок различных меток на пакеты. Например, можно, поставив метку, запретить пакету обновляться;
  • apt — утилита основанная на apt-get и apt-cache. Она является более удобной и информативной. В процессе установки пакета, обновления системы или удаления пакета показывает «Прогресс бар». В некоторых случаях выводит больше информации.

Работа с пакетами это административное действие, поэтому вам придётся работать под пользователем root или использовать sudo. Я в примерах буду использовать sudo. Примеры одинаково выполняются и в Debian и в Ubuntu.

Все рассматриваемые команды имеют под-команды, и в зависимости от под-команды могут иметь различные опции. Например переустановка приложения:

$ sudo apt install --reinstall apache2
  • apt — сам пакетный менеджер;
  • install — под-команда установки пакета;
  • —reinstall — опция переустановки;
  • apache2 — имя пакета.

Обновление системы

Обновление кэша пакетов

В Debian и Ubuntu прежде чем обновлять систему, нужно выяснить, какие обновления доступны в репозиториях. Это так называемое обновление кэша пакетов. Выполняется оно с помощью команды apt-get update или apt update. Пример:

$ sudo apt-get update $ sudo apt update

При этом команда apt update дополнительно покажет количество пакетов, которые можно обновить и команду с помощью которой можно посмотреть список таких пакетов.

Получаем список возможных обновлений

Если есть пакеты, которые можно обновить, то мы можем посмотреть их с помощью команды apt list —upgradable, а опция -a выводит больше информации. С помощью apt-get это проделать невозможно.

$ sudo apt list --upgradable -a

Обновление системы (без возможности удаления пакетов)

Перед обновлением расскажу про зависимости пакетов. Работа некоторых приложений зависит от других приложений или библиотек. Поэтому почти каждый пакет имеет список зависимостей других пакетов. Обычно вручную с зависимостями не работают. Просто пакетные менеджеры (apt или apt-get) при установке определённого пакета также устанавливают пакеты от которых зависит этот пакет.

Читайте также:  Age if wonders 3 linux

Точно также и при обновлении. Если приложение после обновления начало зависеть от других библиотек, то их тоже нужно установить или обновить.

Но бывает ситуация когда некоторые пакеты не совместимы. Например, чтобы обновить пакет требуется установить новые пакеты, но они несовместимы с теми, которые уже установлены. Тут есть два варианта, либо удалить установленные пакеты и выполнить обновление системы, либо не удалять пакеты и прервать обновление.

Без возможности удаления пакетов вы можете выполнить обновление с помощью команд apt-get upgrade и apt upgrade. Например:

$ sudo apt-get upgrade $ sudo apt upgrade

Обновление системы (с возможностью удаления пакетов)

Если вы все-таки хотите обновить пакеты и вас не пугает удаление некоторых пакетов, то выполните следующие команды: apt-get dist-upgrade или apt dist-upgrade. Но это более рискованно, так что обратите особое внимание на то, какие пакеты будут удалены. Ведь удаление некоторых пакетов может просто сломать вашу систему. Пример:

$ sudo apt-get dist-upgrade $ sudo apt dist-upgrade

Получение информации о пакетах из репозиториев

Список пакетов в репозиториях

Чтобы получить список пакетов в репозиториях можно выполнить apt list. Так как это не административное действие, то можно не использовать sudo. Например:

Кстати, утилита apt-get это выполнить не может.

Поиск пакета по ключевому слову

Если мы примерно знаем название приложения, которое нам нужно, то можем попытаться найти пакет используя ключевое слово. При этом поиск идет не только по названию пакетов, но и по его содержимому. Такой поиск выполняется с помощью команд apt-cache search или apt search .

Пример (так как вывод может быть большим, то я использую less):

$ apt-cache search apache | less $ apt search apache | less

Смотрим информацию о пакете

Зная имя пакета, можем посмотреть информацию о нём с помощью команд apt-cache show или apt show .

Пример (так как вывод может быть большим, то я использую less):

$ apt-cache show apache2 | less $ apt show apache2 | less

Поиск зависимостей

Зависимости можно посмотреть в информации о пакете с помощью уже рассмотренных команд apt-cache show или apt show . Но для этого есть ещё одна команда: apt-cache depends или apt depends . Например:

$ apt-cache depends apache2 $ apt depends apache2

Работа с отдельными пакетами

Установка пакета

Установить пакет из репозитория можно с помощью команд apt-get install или apt install . При этом установится пакет и его зависимости. Пример:

$ sudo apt-get install apache2 $ sudo apt install apache2

Удаление пакета без удаления конфигов

Чтобы удалить пакет обычно используют команды apt-get remove или apt remove . Но эти команды удалят только само приложение, не удалив его конфиги. Пример:

$ sudo apt-get remove apache2 $ sudo apt remove apache2

Удаление пакета вместе с конфигами

А чтобы удалить приложение вместе с его конфигами используйте команды apt-get purge или apt purge , например:

$ sudo apt-get purge apache2 $ sudo apt purge apache2

Переустановка пакета

Для переустановки используйте команды apt-get install —reinstall или apt install —reinstall .

$ sudo apt-get install --reinstall apache2 $ sudo apt install --reinstall apache2

Обновление отдельного приложения

Если нам нужно обновить не всю систему а отдельный пакет, то тут нужно использовать знакомую команду apt-get install или apt install . При этом, если пакета нет в системе то он установится, а если есть то обновится. Пример:

$ sudo apt-get install apache2 $ sudo apt install apache2

Скачивание пакета без установки

Если вам просто нужно скачать пакет, а не устанавливать его в систему, то используйте команду apt-get download или apt download . Например:

$ apt-get download apache2 $ apt download apache2

При этом зависимости скачиваться не будут.

Читайте также:  Удалить содержимое папки через командную строку linux

Заморозка пакета

Если вы хотите чтобы система больше не обновляла какой-то отдельный пакет то выполните apt-mark hold , например:

$ sudo apt-mark hold apache2

К сожалению с помощью apt это проделать невозможно.

Исправление проблем с пакетами

Исправление ошибок с зависимостями

Если в процессе установки некоторого пакета или при обновлении всей системы вы столкнётесь с проблемой с зависимостями. То можете воспользоваться командами apt-get -f install или apt -f install. Эти команды пытаются решить проблемы с зависимостями путём удаления или установки новых пакетов.

$ sudo apt-get -f install $ sudo apt -f install

Только внимательно смотрите на список удаляемых пакетов!

Очистка системы от ненужных пакетов

Удаление ненужных пакетов

Когда мы устанавливаем пакет то устанавливаются и его зависимости. А при удалении пакета зависимости остаются и больше не используются. Чтобы удалить подобные пакеты, которые установились, но больше не нужны в системе применяются команды apt-get autoremove или apt autoremove. Например:

$ sudo apt-get autoremove $ sudo apt autoremove

Очистка кэша

При установке какого-нибудь пакета, он вначале скачивается в каталог /var/cache/apt/archives/, а затем устанавливается в систему. Эти установочные файлы тоже можно удалять, освобождая место на диске. Для этого используйте команды apt-get clean или apt clean, например

$ sudo apt-get clean $ sudo apt clean

Мягкая очистка кэша

Помимо clean есть более мягкая команда autoclean. Она удалит только те скаченные пакеты, у которых версия ниже чем в репозитории, остальные пакеты не удалятся:

$ sudo apt-get autoclean $ sudo apt autoclean

Посмотрим на корову 🙂

А еще с помощью apt-get и apt мы можем посмотреть на корову:

$ apt moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ . "Have you mooed today?". $ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ . "Have you mooed today?".

Итог

Мы узнали множество команд с помощью которых можем устанавливать и удалять пакеты в систему, а также обновлять её. И проделывать другие вещи.

Читайте также:  Halt command in linux

А также мы узнали что перед установкой deb пакеты скачиваются в каталог /var/cache/apt/archives/. И у пакетов есть зависимости, которые apt или apt-get определяет и автоматически устанавливает.

Источник

Как полностью удалить пакет с зависимостями в Linux, использующим пакетный менеджер apt.

При установке программ, при помощи пакетного менеджера apt, у многих часто возникаем вопрос как их удалять. Для этого есть команды:

sudo apt-get autoremove имя_программы

Команда удаляет пакет вместе с зависимости, которые для него устанавливались, и больше ему не нужны.

sudo apt-get remove имя_программы

Команда удаляет пакет не затрагивая зависимости.

sudo apt-get purge имя_программы

Команда удаляет конфигурационные файлы пакета.

Казалось бы, на этом все, но не тут-то было, apt-get autoremove не всегда удаляет всё что было установлено вместе с пакетом.

Что бы наверняка удалить все что было установлено вместе с пакетом, можно посмотреть лог apt:

cat /var/log/apt/history.log | more

Пример вывода этой команды:

Start-Date: 2016-08-03 07:46:19 Commandline: apt-get install samba Install: python-tdb:amd64 (1.3.8-2, automatic), python-samba:amd64 (2:4.3.9+dfsg -0ubuntu0.16.04.2, automatic), python-dnspython:amd64 (1.12.0-1, automatic), sam ba:amd64 (2:4.3.9+dfsg-0ubuntu0.16.04.2), samba-dsdb-modules:amd64 (2:4.3.9+dfsg -0ubuntu0.16.04.2, automatic), libaio1:amd64 (0.3.110-2, automatic), tdb-tools:a md64 (1.3.8-2, automatic), attr:amd64 (1:2.4.47-2, automatic), samba-common:amd6 4 (2:4.3.9+dfsg-0ubuntu0.16.04.2, automatic), samba-vfs-modules:amd64 (2:4.3.9+d fsg-0ubuntu0.16.04.2, automatic), samba-common-bin:amd64 (2:4.3.9+dfsg-0ubuntu0. 16.04.2, automatic), python-ldb:amd64 (2:1.1.24-1ubuntu3, automatic) End-Date: 2016-08-03 07:47:23

Здесь видно что при установке samba, так же были установлены python-tdb, python-samba и т.д. Соответственно для полного удаления установленного пакета можно набрать команду:

sudo apt-get autoremove --purge python-tdb python-samba python-dnspython samba samba-dsdb-modules libaio1 tdb-tools attr samba-common samba-vfs-modules samba-common-bin python-ldb

Для того что бы не искать и не выбирать эти программы из лога вручную можно спарсить лог:

sudo sed -n '/Commandline: apt-get install имя_пакета/,/End-Date:.*/p' /var/log/apt/history.log | sed -n '/Install.*/p' | sed -e s'/Install: //g' | sed -e s'/:amd64 //g' | sed -e s'/(.[^)]*),\//g' | tr '\n' ' '

Внимание: эти команды парсят весь лог, т.е. если несколько раз устанавливалась/удалялась программа, на экран выведутся все программы которые были установлены при каждой установке, не только при последней.

Что бы отображались программы только при последней установке нужно в конце строки заменить «tr ‘\n’ ‘ ‘» на «tail -1», т.е. команда должна быть:

sudo sed -n '/Commandline: apt-get install имя_пакета/,/End-Date:.*/p' /var/log/apt/history.log | sed -n '/Install.*/p' | sed -e s'/Install: //g' | sed -e s'/:amd64 //g' | sed -e s'/(.[^)]*),\//g' | tail -1

На экран выведутся программы, которые были установлены при установке пакета.

Что бы их удалить можно ввести:

sudo sed -n '/Commandline: apt-get install имя_пакета/,/End-Date:.*/p' /var/log/apt/history.log | sed -n '/Install.*/p' | sed -e s'/Install: //g' | sed -e s'/:amd64 //g' | sed -e s'/(.[^)]*),\//g' | tr '\n' ' ' | sudo xargs apt-get autoremove --purge -y

Все что устанавливалось при установке вашего пакета, будет удалено.

Источник

Оцените статью
Adblock
detector