Apt очистить кэш пакетов
Пакетный менеджер Apt или Advanced Package Tool используется во множестве дистрибутивов, основанных на Debian или Ubuntu, а таких дистрибутивов сейчас очень много. Этот пакетный менеджер поддерживает все необходимые функции, вы можете устанавливать и удалять пакеты, обновлять то, что было уже установлено, искать пакеты, устанавливать их из файла или загружать без установки. При этом все зависимости будут разрешаться автоматически.
Утилита apt ничем не уступает пакетному менеджеру yum, используемому в RPM дистрибутивах, да, здесь все ещё не поддерживается частичное обновление пакетов, как в Zypper, но в целом всё выглядит очень неплохо. В этой статье мы подробно рассмотрим как пользоваться apt в Linux для решения задач работы с программами.
Выводы
В этой статье мы рассмотрели примеры использования и основные команды apt Ubuntu, как видите, команд у этой утилиты хватает на все случаи жизни. Но, как видите, всё очень просто если разобраться. Я не рассказал только об одной команде, попробуйте ввести в терминале apt moo, увидите что будет. Это небольшая пасхалка от разработчиков.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Что такое apt cache?
Когда вы устанавливаете пакет с помощью команды apt-get или apt (или пакетов DEB в центре программного обеспечения), менеджер пакетов apt загружает пакет и его зависимости в формате .deb и сохраняет его в папке /var/cache/apt/archives
Во время загрузки apt хранит пакет deb в каталоге /var/cache/apt/archives/partial. Когда пакет deb загружен полностью, он перемещается в каталог /var/cache/apt/archives.
После загрузки файлов требуемого deb пакета и его зависимостей ваша система устанавливает данный пакет. Вот для чего нужен кеш. Системе необходимо место для хранения файлов пакетов перед их установкой.
1. Обновление пакетов
Сначала давайте обновим список пакетов apt из репозиториев. Репозитории находятся на удалённых серверах и когда утилита apt ищет пакет для установки, естественно, что она не обращается ко всем репозиториям подряд чтобы узнать где он находится. В системе уже есть сохранённых кэш информации о том, какие пакеты вообще есть и где их можно скачать. Для обновления этого кэша используйте команду update:
sudo apt update
Во время загрузки URL репозиториев обозначаются специальными префиксами, вот что они означают:
- Hit (Сущ) - список не изменился с момента предыдущей загрузки;
- Ign (Игн) - репозиторий игнорируется, либо он слишком новый, либо произошла незначительная ошибка во время загрузки;
- Get(Пол) - доступна новая версия и она будет загружена.
Когда кэш обновлен вы можете посмотреть для каких пакетов доступны обновления:
sudo apt list --upgradable
Аналогично можно посмотреть установленные пакеты apt:
sudo apt list --installed
Или всех доступных:
sudo apt list --all-versions
Затем можно обновить все пакеты в системе:
sudo apt full-upgrade
Как правильно очистить apt cache?
Если вы хотите очистить кеш apt, воспользуйтесь специальной командой. Не удаляйте каталог кеша вручную.
Используйте команду apt-get с аргументом clean:
Данная команда удалит содержимое каталога /var/cache/apt/archives (кроме файла блокировки).
Есть еще одна команда, которая занимается очисткой кеша apt:
В отличие от clean, autoclean удаляет только те пакеты, которые невозможно загрузить из репозиториев.
Предположим, вы установили пакет xyz. Его файлы deb остаются в кеше. Если теперь в репозитории доступна новая версия пакета xyz, этот существующий пакет xyz в кэше теперь устарел и бесполезен. Опция autoclean удалит такие бесполезные пакеты, которые больше нельзя загрузить.
2. Установка пакетов
Чтобы установить пакет apt используйте команду install, например, для установки программы Gimp используйте команду install:
sudo apt install gimp
Если пакет установился неверно и вы хотите его переустановить, можно использовать опцию --reinstall:
sudo apt install gimp --reinstall
Как видите, опции можно указывать не только перед командой, но и после неё, аналогично можно установить несколько пакетов сразу, например:
sudo apt install gimp inkskape -y
Чтобы не подтверждать установку вручную используем опцию -y. Допустим вы установили пакет с помощью dpkg и теперь хотите установить для него зависимости, запустите команду install без параметров с опцией -f или --fix-broken:
sudo apt install --fix-broken
Можно скачать deb пакет в текущую папку без установки:
apt download gimp
Скачивать пакеты надо от имени обычного пользователя, иначе тогда они не будут доступны для работы с ними. Если вам нужно установить пакет из файла, просто передайте путь к файлу команде install:
sudo apt install gimp_2.8.22-1_amd64.deb
Чтобы установить определенную версию пакета просто укажите нужную версию после имени пакета через знак =, например:
sudo apt install linux-headers-generic=4.15.0.20.23
Чтобы найти доступные версии можно использовать команду policy. Она отображает информацию о том какая версия установлена, а также какие версии доступны:
sudo apt policy linux-headers-generic
Если вы не знаете как точно называется пакет, можно выполнить поиск пакетов apt с помощью команды search:
sudo apt search gimp
3. Очистка пакетов
Пакеты программного обеспечения одно из самых слабых мест для засорения системы. Если вы устанавливали много приложений, скорее всего, они потянули за собой большое количество зависимостей, которые после удаления этих приложений не представляют никакой пользы. Поэтому очистка Ubuntu обязательно должна включать удаление ненужных пакетов. Вот несколько команд выполняющих очистку системы:
Удалить неиспользуемые пакеты из кэша
sudo apt autoclean
Очистка кэша в Ubuntu, утилиты apt:
Удаление ненужных зависимостей:
sudo apt autoremove
Вообще хорошей практикой будет удалять зависимости сразу при удалении приложения:
sudo apt autoremove приложение
5. Старые пакеты программ
При обновлении пакета до более новой версии, его старая версия и её конфигурационные файлы тоже остаются в системе и занимают место на диске. Вы можете освободить немного пространства, удалив такие пакеты.
Откройте менеджер пакетов Synaptec, нажмите кнопку Состояние, затем откройте пункт Не установленные (остались файлы конфигурации). Здесь и будут те пакеты, которые, остались в системе после обновления или неполного удаления.
Поставьте галочки напротив всех таких пакетов, и выберите опцию Отметить для полного удаления. Затем нажмите Правка -> Применить для применения действия.
Аналогичное действие можно выполнить в терминале. Для этого используйте команду:
dpkg -l | awk '/^rc/ ' | xargs sudo dpkg --purge
Можно воспользоваться и командой попроще если у вас установлен aptitude:
sudo aptitude purge ~c
3. Удаление пакетов
Чтобы удалить ненужный пакет используйте команду remove:
sudo apt remove gimp
Однако если вы изменяли какие-либо конфигурационные файлы из состава пакета, то при таком способе удаления они останутся в системе, чтобы удалить всё полностью используйте команду purge:
sudo apt purge gimp
Чтобы удалить лишние пакеты, которые в системе больше не нужны выполните команду autoremove:
sudo apt autoremove
А для очистки кэша пакетов - autoclean:
sudo apt autoclean
Зачем сохранять кеш после установки пакета?
Загруженные файлы deb не удаляются из каталога сразу после завершения установки. Если вы удалите пакет и переустановите его, ваша система будет искать пакет в кеше и получать его отсюда, а не загружать его снова (если версия пакета в кеше такая же, как и версия в удаленном репозитории).
Это намного быстрее. Вы можете попробовать это самостоятельно и посмотреть, сколько времени потребуется программе для первой установки, удаления и повторной установки. Вы можете использовать команду time, чтобы узнать, сколько времени требуется для выполнения команды:
apt-get autoclean
Команда apt-get autoclean, как и apt-get clean, очищает локальный репозиторий от извлеченных файлов пакетов, но удаляет только те файлы, которые больше не могут быть загружены и практически бесполезны. Это помогает сохранить ваш кэш от переполнения.
Синтаксис и опции apt
Синтаксис команды apt очень простой и похож на другие команды Linux:
$ apt опции команда параметры_команды
Опции указывают общее поведение утилиты, команда - действие, которое надо выполнить, а в параметрах команды обычно передается имя пакета, с которым следует работать, например, установить или удалить. Вот основные опции утилиты:
А теперь давайте пройдёмся по командам apt, которые вы можете использовать:
- install - установить пакет;
- remove - удалить пакет, конфигурационные файлы, которые были изменены в вашей системе удалены не будут;
- purge - полностью удалить пакет, вместе со всеми его конфигурационными файлами;
- autoremove - очистить ненужные пакеты;
- autoclean - очистить кэш пакетов;
- update - обновить списки пакетов из репозиториев;
- upgrade - обновить версию пакета до последней, если пакет не указан будут обновлены все пакеты;
- full-upgrade - полное обновление системы, включая удаление несовместимых или больше ненужных пакетов;
- list - список установленных пакетов;
- search - поиск пакетов;
- show - посмотреть информацию о пакете;
- download - скачать пакет в текущую папку;
- edit-sources - открыть с настройками репозиториев в текстовом редакторе.
- source - скачать исходный код пакета в текущую папку;
- build-dep - установить зависимости необходимые для сборки выбранного пакета;
Дальше рассмотрим несколько примеров работы с apt, которые пригодятся как начинающим, так и более опытным пользователям.
Как очистить Ubuntu
В этой инструкции будет рассмотрена очистка системы Ubuntu. Мы рассмотрим как очистить ненужные, не используемые пакеты, удалить пользовательские файлы и уже ненужные файлы настроек, которые остались в системе, а также найдем все файлы, не принадлежащие ни одному пакету, чтобы вы могли сами оценить нужны они вам или нет. Будет рассмотрена очистка кэша в ubuntu и удаление старых ядер.
apt-get clean
Команда apt-get clean очищает локальный репозиторий от извлеченных файлов пакетов, оставшихся в каталоге /var/cache. Чистится содержимое каталогов: /var/cache/apt/archives/ и /var/cache/apt/archives/partial/. Единственные файлы, которые он оставляет в /var/cache/apt/archives - это файлы блокировки и подкаталог.
Перед запуском операции очистки в каталоге может находиться несколько файлов:
Отобразить содержимое, указанное выше можно выполнив команду:
sudo ls –lR /var/cache/apt/archives
/var/cache/apt/archives:
Total 4
-rw-r----- 1 root root 0 Jan 20 2019 lock
drwx------2_apt root 4096 Jan 20 07:24 partial
Команда apt-get clean обычно используется для очистки дискового пространства по мере необходимости, как правило, в рамках регулярного планового обслуживания.
9. Старые ядра
После обновления ядра, особенно в старых версиях Ubuntu старые ядра всё ещё остаются и занимают место в папке /boot. Чтобы из удалить можно использовать утилиту Ubuntu Cleaner. Для её установки выполните:
sudo apt install ubuntu-cleaner
Откройте программу из главного меню или через терминал, затем отметьте пункт Old Kernel. В правой части окна появится список пакетов ядер, которые можно удалить:
Отметьте нужные и нажмите кнопку Clean. Другие способы удалить старые ядра описаны в отдельной статье.
Очистка кэша Apt в Ubuntu и Debian
- Иногда вам может понадобиться освободить место на диске.
- Удалив пакет и переустановив его, система посмотрит на кэш, и вы получите ту же версию программного обеспечения.
Чтобы перечислить файл .deb, хранящийся в кэше, введите:
Чтобы проверить диск, используемый кэшем, выполните следующую команду.
В моем случае это более 340 МБ.
Для очистки кэша apt используйте команду apt clean , которая удаляет все (кроме файла блокировки) из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/ .
Вы также можете выполнить запуск, чтобы увидеть, что на самом деле происходит, когда вы очищаете кэш apt. Для этого введите команду:
Он показывает, какое содержимое каталога будет удалено.
Так же безопасно запускать команду apt-get clean , так как она удаляет только копию файлов .deb . В следующий раз, когда вы запустите apt-get install , то она сможет извлекать пакеты из зеркала.
Наконец, чтобы очистить кэш apt , просто выполните следующую команду.
7. Файлы локализации
Если вам не нужно переключаться между различными локализациями системы, вы можете просто удалить лишние, не используемые языковые стандарты и освободить немного пространства на диске.
Установите утилиту localepurege:
sudo apt install localepurge
На этапе установки пакета выберите те локали, которые вам нужны, все остальные будут удалены. По умолчанию выбраны en_US и ru_RU для кодировки UTF-8, вы можете выбрать и другие.
4. Старые версии snap пакетов
В новых версиях Ubuntu используется пакетный менеджер snap, он тоже оставляет в системе кэш, а также старые версии пакетов после обновления. Эти версии уже не используются но всё ещё занимают место. По умолчанию, это три, это значение можно изменить на две с помощью такой команды:
sudo snap set system refresh.retain=2
Если вы хотите полностью удалить неиспользуемые версии пакетов, для этого понадобится использовать небольшой скрипт:
sudo vi /usr/local/bin/remove_old_snaps.sh
Если система установлена достаточно давно, и обновлений было много, то такой скрипт может освободить вам несколько гигабайт места. После сохранения файла дайте ему права на выполнение:
sudo chmod ugo+x /usr/local/bin/remove_old_snaps.sh
Как пользоваться apt
6. Неиспользуемые пакеты
Мы часто устанавливаем различные пакеты, и не все из них нам нужны долгое время. Бывает, что пакет нужен определенному приложению, но после удаления приложения он больше не используется. Или вы установили программу, попользовались ею пару раз, а потом забыли о ее существовании. Такие приложения тоже нужно найти и ликвидировать чтобы очистка ubuntu от мусора была выполнена полностью.
Для этого будет очень полезной программа GTKOrphan. Для ее установки выполните:
sudo apt install gtkorphan
Как обычно, открыть программу вы можете из главного меню.
Она проанализирует систему и покажет все пакеты, которые не находятся ни у кого в зависимостях. То есть те, которые вы устанавливали сами. Теперь вы можете посмотреть какие из них вам не нужны и спокойно их удалить. Не удаляйте все пакеты бездумно, это может сломать вашу систему. Чтобы отобразить больше пакетов кликните по пункту Параметры и выберите Показывать пакеты не только из библиотеки.
8. Никому не принадлежащие файлы
При неправильной установке программ из исходников в системе могут накопляться файлы, не принадлежащие ни одному пакету, после удаления этих программ они могут просто оставаться в системе. Также такие файлы накапливаются при установке программ из бинарных файлов или создаются вами вручную. Одним словом, такие файлы нужно удалять. Для этого будем использовать программу cruft. Для установки выполните:
sudo apt install cruft
Для запуска программы просто выполните её с опцией -r и путём к файлу, куда надо сохранить отчёт:
sudo cruft -r cruftreport
Затем просто откройте полученный файл в с помощью less или cat:
Программа выдаст список всех никому не принадлежащих файлов. Теперь вы можете просмотреть и удалить те, которые считаете ненужными. Только будьте очень аккуратны, чтобы не удалить ничего лишнего. Не забудьте что такие файлы могут создаваться и обычными программами, например, Grub и SSL.
Выводы
В этой статье мы рассмотрели несколько самых распространенных способов того, как выполняется очистка Ubuntu от хлама. Они помогут вам поддерживать систему в чистоте. Если вы знаете другие методы, напишите в комментариях!
1. Использование дискового пространства
Очистка системы Ubuntu 20.04 должна начаться с выяснения, какие файлы потребляют больше всего пространства на диске. В этом вам поможет программа ncdu. Это консольная утилита с псевдографическим интерфейсом, но мне она нравится больше всего. Сначала её надо установить. Для этого выполните в терминале:
sudo apt install ncdu
Затем запустите программу:
После завершения анализа вы можете увидеть какие файлы занимают больше всего пространства на жестком диске. Вы внезапно можете обнаружить, что много места занимают логи или ненужные файлы в домашней папке. Вы можете открывать папки клавишей Enter, перемещаться по ним с помощью стрелок вверх и вниз, а также прямо здесь удалять ненужные файлы с помощью кнопки Delete. Более подробно про утилиты для анализа занимаемого пространства читайте в отдельной статье.
Оцените статью:
Об авторе
5 комментариев
Спасибо, очень хорошо разъяснили, сложил в свою библиотеку.
Спасибо за мычание.
Обьясните чайнику ,плз, разницу между apt и apt-get.
спасибо, забыли упомянуть apt dist-upgrage
непонятно разница между apt list и sudo apt list -installed. Первая выводит список всех установленых и доступных к установке а вторая только установленных?
Как очистить кеш apt? Мы просто используем параметр clean команды apt-get:
Но очистка кеша apt — это не просто выполнение указанной выше команды.
В этом руководстве выясним, что такое apt cache, почему он используется, почему вы хотите его очистить и что еще следует знать об очистке apt cache.
Для примера используем Ubuntu, но т.к речь идет об apt, данная информация применима к другим дистрибутивам на основе Debian и Ubuntu, таким как Linux Mint, Deepin и др.
Безопасно ли удалять apt cache?
Очистка кеша не повлияет отрицательно на производительность системы. Возможно, если вы переустановите пакет, загрузка займет немного больше времени, но это все.
Опять же, используйте команду apt-get clean. Это быстрее и проще, чем вручную удалить каталог кеша.
Когда вы устанавливаете пакеты в Debian / Ubuntu с помощью команды apt-get , копия файла .deb хранится локально. Это поможет в случае, если вам нужно переустановить их после удаления. Тогда пакеты могут быть доступны локально (по-другому называется кэш).
Загруженные пакеты кэшируются локально в /var/cache/apt/archives/ . Каждый раз, когда вы запускаете команды apt-get update и apt-get install , кэш apt обновляется.
Возможно вас заинтересует:
В этой инструкции вы узнаете, как очистить кэш apt в системах Debian и Ubuntu .
Примечание: Если вы используете команду apt вместо команды apt-get , то этот кэш автоматически удаляется в новых версиях ОС.
apt-get autoremove
Параметр autoremove удаляет пакеты, которые были установлены автоматически, поскольку они требовались для некоторых других пакетов, но после удаления этих пакетов они больше не нужны. Иногда при обновлении рекомендуется выполнить эту команду.
Удаляемые пакеты часто называют "неиспользуемыми зависимостями". На самом деле, хорошей практикой является использование autoremove после удаления пакета, чтобы быть уверенным, что не осталось ненужных файлов
Ни для кого не секрет что система в процессе своей работы засоряется. Установка и удаление программ, выполнение скриптов, обновления, неверная установка программ из исходников, ошибки в программах, все это оставляет в системе лишние, ненужные пакеты. Со временем этих файлов может накапливаться достаточно большое количество.
Конечно, Ubuntu, как и любая другая операционная система Linux засоряется намного меньше Windows, здесь нет реестра, и архитектура системы рассчитана так, чтобы оставлять мусор по минимуму. Но кроме системных недочетов, в файловой системе могут накапливаться ненужные файлы пользователей и программ. Поэтому очистка ubuntu от мусора необходима.
Заключение
Если вы намерены очистить только устаревшие пакеты deb , используйте apt-get autoclean . Это приведет к удалению файлов пакетов, которые больше не могут быть загружены и в значительной степени бесполезны.
В этой инструкции мы показали, как очистить кэш apt в Debian и Ubuntu . Мы настоятельно рекомендуем Вам высказать свои замечания и предложения в комментариях. Спасибо.
Большинство из нас, работающих с системами на базе Debian , регулярно используют apt-get для установки пакетов и обновлений, но как часто мы пользуемся инструментами очистки? Давайте рассмотрим некоторые опции инструмента для очистки.
Выполнение команд apt-get в системе, основанной на Debian, является рутиной. Пакеты обновляются довольно часто, и такие команды, как apt-get update и apt-get upgrade, делают этот процесс довольно легким. С другой стороны, как часто вы используете apt-get clean, apt-get autoclean или apt-get autoremove?
Эти команды очищают и удаляют файлы, которые все еще находятся в вашей системе, но больше не нужны – часто потому, что приложение, которое требовало их, было удалено.
Стоит ли очищать apt cache?
Если у вас заканчивается дисковое пространство в корневом каталоге, вы можете очистить apt кеш. Это один из нескольких способов освободить дисковое пространство в Ubuntu.
Проверьте, сколько места занимает кеш, с помощью команды du:
2. Дубликаты файлов
Со временем могло накопиться несколько копий одного файла в системе. Если нужна очистка памяти в Ubuntu, то такие файлы важно найти и удалить, прежде чем они заполнят весь жесткий диск.
Для решения этой задачи есть несколько утилит. Утилита FSlint позволяет найти и очистить битые символические ссылки, а также дубликаты файлов в файловой системе.
Для установки программы используйте команду:
sudo apt install fslint
Запустить программу можно из главного меню. В главном окне нужно указать путь, по которому следует искать дубликаты файлов с помощью кнопки Add, затем перейти на вкладку Дубликаты и нажать в самом низу Найти:
Когда поиск будет завершен, утилита выведет все одинаковые файлы группами, и вы сможете прямо здесь отметить те файлы, которые надо удалить или заменить на символическую ссылку с помощью контекстного меню.
Еще одним отличным решением для поиска дублей есть утилита BleachBit, кроме поиска дубликатов файлов, здесь есть специальные приложения для нахождения дублей фото и аудиофайлов по специальным алгоритмам. Подробнее о работе с программой я писал в отдельной статье - как освободить место в Linux.
Читайте также: