Как обновить кэш репозиториев linux

Обновлено: 05.07.2024

Как очистить кеш apt? Мы просто используем параметр clean команды apt-get:

В этом руководстве выясним, что такое apt cache, почему он используется, почему вы хотите его очистить и что еще следует знать об очистке apt cache.

Для примера используем Ubuntu, но т.к речь идет об apt, данная информация применима к другим дистрибутивам на основе Debian и Ubuntu, таким как Linux Mint, Deepin и др.

Что такое 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 пакета и его зависимостей ваша система устанавливает данный пакет. Вот для чего нужен кеш. Системе необходимо место для хранения файлов пакетов перед их установкой.

Зачем сохранять кеш после установки пакета?

Загруженные файлы deb не удаляются из каталога сразу после завершения установки. Если вы удалите пакет и переустановите его, ваша система будет искать пакет в кеше и получать его отсюда, а не загружать его снова (если версия пакета в кеше такая же, как и версия в удаленном репозитории).

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

Стоит ли очищать apt cache?

Если у вас заканчивается дисковое пространство в корневом каталоге, вы можете очистить apt кеш. Это один из нескольких способов освободить дисковое пространство в Ubuntu.

Проверьте, сколько места занимает кеш, с помощью команды du:

Как правильно очистить apt cache?

Если вы хотите очистить кеш apt, воспользуйтесь специальной командой. Не удаляйте каталог кеша вручную.

Используйте команду apt-get с аргументом clean:

Данная команда удалит содержимое каталога /var/cache/apt/archives (кроме файла блокировки).

Есть еще одна команда, которая занимается очисткой кеша apt:

В отличие от clean, autoclean удаляет только те пакеты, которые невозможно загрузить из репозиториев.

Предположим, вы установили пакет xyz. Его файлы deb остаются в кеше. Если теперь в репозитории доступна новая версия пакета xyz, этот существующий пакет xyz в кэше теперь устарел и бесполезен. Опция autoclean удалит такие бесполезные пакеты, которые больше нельзя загрузить.

Безопасно ли удалять apt cache?

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

Опять же, используйте команду apt-get clean. Это быстрее и проще, чем вручную удалить каталог кеша.

Во-первых, в экономии трафика. Зачем качать один и тот же пакет несколько раз, если его уже скачал ваш коллега? Таким образом экономия трафика растет пропорционально количеству народу в конторе использующих *buntu.
Во-вторых, в экономии места на ЖД сервера, на котором установлен apt-cacher. Ведь зачем хранить 22 Гб пакетов на ЖД, если из них используются максимум 10Гб?
В-третьих, в скорости получения обновлений. Сколько раз вы обновляете свое зеркало обновлений? 1 раз в день? Apt-cacher позволяет получать обновления по мере их появления на офф. зеркале. Когда пользователь делает запрос на обновление(apt-get update) apt-caсher лезет на офф. зеркало проверить, нет ли обновлений того что у него лежит в кеше.
Безусловно у apt-cacher есть и минусы.
Первый минус — apt-cacher распределяет закешированные файлы по своей структуре, отличной от структуры debian-репозиториев. Но эту проблему можно решить, если вам важно сохранить структуры репозитория, это описано ниже.
Второй минус — необходимо наличие Веб-сервера Apache. Тут, к сожалению так просто проблему не решить, но я не думаю, что это существенная проблема :)

Установка и настройка apt-cacher`a

Сама установка довольно банальна для debian-пакетов
sudo apt-get install apt-cacher

Создадим папку для хранения кэша(т.е. самих пакетов) и назначим ей права
sudo mkdir /var/cache/apt-cacher
sudo chown www-data:www-data /var/cache/apt-cacher/*

Вы можете создать папку в любом месте
под юзером и группой www-data будет запускаться наш apt-cacher, так же под ним надо будет запускать Apache.

<DirectoryMatch /usr/share/apt-cacher/>
Options ExecCGI
AddHandler cgi-script .pl
AllowOverride None
order allow,deny
allow from all


Вот. Настройка конф. файлов закончена. Теперь, думаю, самое время приступить к настройке рабочих станций, но для начала опишу как все-таки конвертнуть то, что было в кэше apt-mirror`а в apt-cacher.

Apt-mirror > apt-cacher

У apt-cacher`a есть perl скрипт для конвертации пакетов в формат apt-cacher`a, имя ему apt-cacher-import.pl, и лежит он в /usr/share/apt-cacher. Пользоваться им следующим образом:
/usr/share/apt-cacher/apt-cacher-import.pl -r -c /etc/apt-cacher/apt-cacher.conf /var/my_repos

-r — рекурсивный обход каталога
-c — не обязательный параметр, в котором указывается путь к конф. файлу.
/var/my_repos — директория к репозиторию формата apt-mirror(обычный дебиановский формат репозитория).

В результате этой команды, в папку /var/cache/apt-cacher будут скопированы и переведены в нужный формат все пакеты, которые будут найдены в /var/my_repos
Если вам необходимо оставить дебиановский репозиторий, при этом чтобы репозиторий apt-cacher`a не занимал дополнительного места, к команде добавьте -s, тогда скрипт просто сделает сим-линки на пакеты. НО! Если вы после этого удалите дебиановский репозиторий, то пакеты для apt-cacher`a так же будут не доступны(это же обычные сим-линки)
Если же вы использовали apt-proxy, то у apt-cacher`a тоже имеется скрипт для перевода его репозитория в свой. Скрипт лежит: /usr/share/apt-cacher/apt-cacher/apt-proxy-to-apt-cacher.pl.

Запуск демона и настройка клиентских машин.

Настройка клиентов

Если вы включили статистику, то её можно посмотреть localserver:9999/reports

Одна важная вещь, которую нужно освоить при администрировании системы/сервера Linux, — это управление пакетами с использованием различных инструментов управления пакетами.

Различные дистрибутивы Linux устанавливают приложения из предварительно скомпилированного пакета, который содержит двоичные файлы, файлы конфигурации, а также информацию о зависимостях приложения.

Инструменты управления пакетами помогают администраторам системы/сервера во многих отношениях, например:

  • Скачивание и установка программного обеспечения
  • Компилирование программного обеспечение из исходников
  • Отслеживание всего установленного программного обеспечения, его обновлений и обновлений
  • Обработка зависимостей
  • А также хранение другой информации об установленном программном обеспечении и многом другом

Что такое apt?

Утилита apt — это мощная и бесплатная программа командной строки для управления пакетами, которая используется для работы с библиотекой APT (Advanced Packaging Tool) в Debian и производных дистрибутивах для установки новых пакетов программного обеспечения, удаления существующих пакетов программного обеспечения, обновления существующих пакетов программного обеспечения и даже используется для обновления всей операционной системы.

Что такое apt-cache?

Инструмент командной строки apt-cache используется для поиска в кэше пакетов программного обеспечения apt. Проще говоря, этот инструмент используется для поиска пакетов программного обеспечения, сбора информации о пакетах, а также для поиска доступных пакетов, готовых к установке в системах на основе Debian или Ubuntu.

Обновления кэша с информацией о приложениях

Когда в репозиторий вносятся изменения, например, при обновлении пакета, необходимо синхронизировать эту информацию с локальным кэшем вашей операционной системы Linux. Это делается командой:

Этого же результата (обновления кэша) можно достичь разными способами, в том числе имеется ещё несколько команд. Например, следующая команда также обновит кэш (нет принципиальной разницы, какую команду вы используете):

Даже если вы не собираетесь выполнять полное обновление системы, обновление кэша необходимо выполнить перед установкой любых пакетов. В противном случае вы можете столкнуться с ошибкой, что требуемый пакет не найден. Эта ошибка возникает из-за того, что в вашей системе есть информация о предыдущей версии пакета и ссылка для его скачивания, и именно по этому адресу менеджер пакетов пытается получить файл пакета. Но в репозитории устаревшая версия уже могла быть удалена. В результате получается, что пакет есть в репозитории, но ваша система не узнает его новый адрес, пока не обновит свой кэш.

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

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

Поиск пакетов

Для поиска пакетов предназначена команда вида:

Данная команда ищет по описанию пакетов и может выводить слишком большой список. Эта команда может пригодиться, если имя нужной утилиты не совпадает с названием пакета (например, один пакет содержит несколько утилит).

Обратите внимание, что для данной команды, в отличие от большинства других с apt, не требуются права root (можно использовать без sudo).

Поиск пакетов только по названию

Предыдущая команда бывает бесполезной из-за слишком большого вывода информации. Вы можете использовать следующую команду для поиска по имени пакета:

Вы также можете указать подстановочные символы, например для поиска по названию, начинающемуся на слово ПАКЕТ:

Для поиска по названию, оканчивающемуся на слово ПАКЕТ:

Для поиска по названию, в котором присутствует слово ПАКЕТ:

Ещё более удобной, на мой взгляд, командой для поиска пакетов является:

Последняя команда ищет в именах по слову ПАКЕТ и выводит список всех пакетов, где оно встречается. Использовать подстановочные символы не нужно.

Как проверить, установлен ли пакет

Вы можете использовать команды apt list или apt search не только для поиска пакетов, но и просмотра информации о том, установлены ли они.


Рядом с описанием пакетов вы можете увидеть один из трёх вариантов:

  • строка «[установлен]» — пакет установлен вручную
  • строка «[установлен, автоматически]» — пакет установлен как зависимость или как включённый в метапакет (во время установке операционной системы Kali Linux активно использует метапакеты, поэтому многие инструменты имеют такую отметку)
  • ничего не написано — значит пакет не установлен

Просмотр информации о пакете

Эта команда поможет вам отобразить информацию о пакете или пакетах, запустите команду, указав все пакеты, информацию о которых вы хотите отобразить.


Как удалить пакет

Для удаления используйте команду вида

Можно удалять сразу много пакетов за раз:

Как полностью удалить пакет, вместе с конфигурационными файлами

При удалении пакета удаляются все его файлы, но обычно остаются небольшие (изменённые) файлы конфигурации пользователя на случай, если удаление было случайным. В этом случае простая отправка запроса на установку для случайно удалённого пакета восстановит его работу, как и раньше. С другой стороны, вы можете избавиться от этих остатков, вызвав purge даже для уже удалённых пакетов. Обратите внимание, что это не влияет на данные или конфигурацию, хранящиеся в вашем домашнем каталоге.

Итак, для полного удаления пакета используйте команду вида:

Обновление всех пакетов системе в Kali Linux

Чтобы обновить все пакеты, для которых вышли новые версии, а также установить необходимые зависимости и удалить мешающие пакеты, используется команда:

Среди удаляемых пакетов могут быть конфликтующие (мешающие установке требуемых зависимостей).

Аналогичный результат можно получить командами (это одна из немногих команд, которая различается для apt и apt-get):

Для удобства можно объединить команду обновления кэша и команду запуска полного обновления системы в одну, опция -y используется для того, чтобы у нас не спрашивалось подтверждение, а сразу начался процесс установки новых пакетов:

Как узнать, в каком пакете содержится файл

Если вы компилируете программы из исходных кодов, то вы, наверняка, сталкивались с ошибками компиляции, когда программа не находит какой-либо файл и компиляция обрывается. Что делать в данной ситуации? Понятно, что нужно установить пакет, который содержит требуемый файл. Но как узнать имя этого пакета?

С помощью программы apt-file можно искать по именам файлов в пакетах (как установленных, так и нет). Также она может показать все файлы в пакете.

Сразу после установки кэш данных о программах пуст. Чтобы его обновить нужно выполнить команду:

Когда всё готово, то поиск осуществляется так:

К примеру поиск файла ffi.h:

У программы apt-file есть альтернативы, подробности смотрите в статье «Как в Linux узнать, в каком пакете содержится файл».

Как проверить все зависимости пакета

Эта команда поможет вам отобразить необработанную информацию о зависимостях конкретного указанного вами пакета.

Как узнать, для каких программ данный пакет является зависимостью

Если вы хотите удалить программу, но не уверены, нужна ли она для других программ, то вы можете проверить, для каких пакетов она является зависимостью командой вида:

Как просмотреть список изменений пакета

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

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

Если вы хотите скачать пакет без установки, например, чтобы изучить его или внести изменения, то выполните команду вида:

Как проверить, всё ли впорядке с кэшем приложений

Если вы хотите узнать, имеются ли сломанные зависимости, то выполните диагностическую команду:

Как установить файл .deb

Чтобы установить файл .deb, запустите команду с именем файла в качестве аргумента, как показано ниже:

Как удалить неиспользуемые пакеты

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

Её использование безопасно и не должно приводить к проблемам.

Как очистить старый репозиторий загруженных пакетов.

Опция «clean» или «autoclean» удалит все старые локальные репозитории загруженных файлов пакетов.

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

Как мне перечислить все доступные пакеты?

Чтобы вывести список всех доступных пакетов, введите следующую команду.

Чтобы найти и перечислить все пакеты, начинающиеся с «СЛОВА», вы можете использовать следующую команду.

Как проверить статистику кеша

Подкоманда «stats» отображает общую статистику о кеше. Например, следующая команда отобразит Общее количество имен пакетов - это количество пакетов, найденных в кеше.


Как установить или обновить только определённые пакеты?

Подкоманда «install» отслеживается одним или несколькими пакетами, которые хотят установить или обновить.

Как установить пакеты без обновления

Использование подкоманды «--no-upgrade» предотвратит обновление уже установленных пакетов.

Как обновить только определённые пакеты

Команда «--only-upgrade» не устанавливает новые пакеты, а только обновляет уже установленные пакеты и отключает новую установку пакетов.

Как установить конкретную версию пакета?

Допустим, вы хотите установить только определённую версию пакетов, просто используйте "=" с именем пакета и добавьте желаемую версию.

Как загрузить только исходный код пакета

Чтобы загрузить только исходный код определенного пакета, используйте параметр «--download-only» с «именем пакета», как показано.

Как я могу скачать и распаковать пакет

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

Как я могу скачать, распаковать и скомпилировать пакет

Вы также можете загрузить, распаковать и скомпилировать исходный код одновременно, используя опцию «--compile», как показано ниже.

Как мне найти и установить зависимости для сборки пакета?

Эта команда «build-dep» выполняет поиск в локальных репозиториях в системе и устанавливает зависимости сборки для пакета. Если пакет не существует в локальном репозитории, она вернёт код ошибки.

Как автоматически удалить зависимости удаляемого пакета

Подкоманда «autoremove» используется для автоматического удаления пакетов, которые были установлены для удовлетворения зависимостей других пакетов, но теперь они больше не требуются. Например, следующая команда удалит установленный пакет с его зависимостями.

Как найти все файлы пакета

Следующая команда поможет вам составить список всех файлов, содержащихся в пакете:

Как проверить пакет на наличие неработающих зависимостей.

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

Как перечислить все рекомендуемые отсутствующие пакеты данного пакета

Эта команда покажет, какие пакеты рекомендованы, но не установлены. Работает только в Linux Mint.

Как проверить версию установленного пакета

Следующая команда покажет вам версию установленного пакета.

Резюме

Всегда помните, что хорошее управление пакетами Linux может помочь вам избежать поломки вашей системы. Есть так много других инструментов управления пакетами, которые вы можете использовать в Linux.

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


При установке приложений и программ на Linux есть несколько способов сделать это. Более опытные пользователи могут загрузить исходный код с веб-сайта разработчика и скомпилировать его прямо на своем компьютере. Что-то очень медленное и непрактичное. Самые неопытные пользователи обычно выбирают простой способ: найдите и загрузите двоичный файл (например, deb) и установите его из диспетчера пакетов двойным щелчком. Как в Windows. И, в-третьих, у нас есть промежуточные пользователи, которые ищут комфорта и простоты и используют репозиториев Linux загружать, устанавливать и обновлять свои программы.

Что такое репозитории Linux?

Хранилища являются одной из лучших функций, которые есть в Linux. Репозиторий - это список программ, обычно всегда обновляемый, который позволяет нам легко искать и загружать все виды программ и инструментов в нашем дистрибутиве.

Благодаря репозиториям мы сможем иметь безопасное и надежное место для загрузки программного обеспечения и последние обновления всех наших программ. Эти программы будут установлены без каких-либо проблем с зависимостями, и мы также можем обновить весь наш программный репертуар с помощью простой команды.

Разработчики дистрибутивов обычно включают свои собственные репозитории с полезными программами. Кроме того, многие разработчики имеют собственные независимые репозитории для распространения своих программ. Даже любой пользователь может создать и поддерживать свой собственный репозиторий, что очень полезно, например, для распространения списков программного обеспечения.

Различные типы репозиториев в Ubuntu

Когда мы устанавливаем Ubuntu, дистрибутив устанавливает серию репозиториев, принадлежащих разным каналам:

  • Главный: репозиторий установлен по умолчанию. Он состоит из бесплатного программного обеспечения FOSS, которое можно распространять свободно и без ограничений.
  • Вселенная: включает бесплатное программное обеспечение с открытым исходным кодом, но не может гарантировать регулярные обновления безопасности.
  • Мультивселенная: включает в себя программное обеспечение от FOSS. Это должен быть пользователь, который анализирует лицензии и решает, использовать эти программы на законных основаниях или нет.
  • Ограничение: в этом канале мы можем найти программное обеспечение с закрытым исходным кодом. Он используется, например, для распространения драйверов NVIDIA, среди многих других.
  • Партнеры: включает в себя проприетарное программное обеспечение, которое было упаковано Canonical.

И в дополнение к этим репозиториям мы также можем добавить сторонние репозитории в наш дистрибутив Linux для безопасной установки другого программного обеспечения.

Шаги, которые мы увидим далее, были сделаны в Ubuntu, но они должны быть одинаковыми для любого дистрибутива на основе Debian.

Как добавить новые репозитории в список программного обеспечения

Чтобы увидеть список репозиториев, которые есть в нашем дистрибутиве Ubuntu, нам нужно открыть Терминал (Control + Alt + T) и выполнить в нем следующую команду:

sudo gedit /etc/apt/sources.list

Если он не работает или у нас не установлен gedit в нашем дистрибутиве, мы можем сделать это следующим образом, перейдя в редактор «nano».

Суда нано / и т.д. / кв / sources.list

Список репозиториев в Linux

Сохраняем изменения и поехали. Конечно, перед обновлением репозиториев и установкой любой программы мы должны установить ключи безопасности этого репозитория. Обычно они предлагаются вместе с PPA, а затем мы увидим пример с официальным Google Chrome Сделки РЕПО.

Пример добавления репозитория Google Chrome из терминала

Добавить репозиторий или PPA из Linux Мы должны сделать это следующим образом. Первым делом будет искать в интернете репозиторий, который мы хотим добавить. В случае Google Chrome (этот пример), мы можем найти его на Веб-сайт Google .

В терминале мы выполним следующую команду, чтобы добавить ключи официальных репозиториев Google в наш Linux. В противном случае программное обеспечение хранилища не может быть проверено и выдаст ошибку:

После выполнения предыдущей команды мы можем добавить репозиторий в список репозиториев Ubuntu. И мы сделаем это с помощью следующей команды:

Очевидно, если мы добавили хранилище из GEdit как мы объяснили на предыдущем шаге, эта последняя команда не понадобится.

Теперь, во-первых, нам нужно будет обновить список репозиториев Linux, чтобы зарегистрировать в нашей системе все программы и иметь возможность загружать и устанавливать их с помощью apt install.

Как обновить список репозиториев Linux

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

  • sudo apt update (для обновления списков программного обеспечения репозиториев).
  • Обновление sudo apt (для загрузки доступных пакетов).

Actualizar репозитории Linux

Когда процесс будет завершен, все программы нашего Linux, которые были установлены через репозитории, будут обновлены до последней версии.

Теперь мы можем установить нужные нам программы из репозиториев нашего Linux, используя apt install (например: sudo apt установить google-chrome).

Читайте также: