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

Ubuntu — как правильно обновить файл репозитория

Немного теории.

Усовершенствованное средство управления программными пакетами APT (Advanced Packaging Tool) первоначально было разработано для управления пакетами в дистрибутиве Debian GNU/Linux.

Система APT состоит из нескольких утилит. Главной и наиболее часто используемой является apt-get, утилита управления пакетами. Apt-get автоматически определяет зависимости между пакетами и строго следит за их соблюдением при выполнении любой из следующих операций: установка, удаление или обновление пакетов.

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

Программа apt-get позволяет устанавливать в систему пакеты, которые требуют наличия других, пока еще не установленных, пакетов программ. В этом случае apt-get вычисляет, какие из неустановленных пакетов требуются, и доустанавливает их, пользуясь всеми известными ему репозитариями. Для того, чтобы apt-get мог использовать тот или иной репозитарий, информацию о нем необходимо поместить в файл /etc/apt/sources.list и выполнить команду

APT при поиске пакетов руководствуется базой данных о репозитарии. Эта база данных создается заново каждый раз, когда в репозитарии происходит изменение (добавление, удаление или переименование пакета). Для ускорения работы apt-get хранит локальную копию базы данных и потому она через некоторое время вполне может не соответствовать реальному состоянию репозитария.

Таким образом, выполняя команду

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

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

Данная команда позволит восстановить зависимости и выполнить корректную установку.

Обновление репозитория.

Для внесения изменений (обновления) в репозиторий необходимо выполнить команду:

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

В случае возникновения сбоев при ручном обновлении репозиториев, рекомендую выполнить бэкап файла и очистку его содержимого. Затем необходимо перейти по ссылке: http://repogen.simplylinux.ch/

На указанном ресурсе расположен генератор, с помощью которого можно выполнить создание нового файла репозитория “с нуля”.

Указав страну и версию операционной системы, необходимо проставить галочки напротив интересующих репозиториев, далее необходимо промотать страницу вниз и нажать кнопку “Generate List”.

Далее будет сформирована страница, на которой нас интересует: Source List, его содержимое нужно скопировать в файл: /etc/apt/sources.list

Не забиваем про ключи GPG. Команды в этом окне необходимо выполнить на нашей системе.

Читайте также:  Windows app many settings

В конце всех манипуляция снова выполняем

На тему «Как добавлять, удалять и отключать PPA в Ubuntu» есть хорошая статья: http://ubuntovod.ru/instructions/add-remove-disable-ppa-ubuntu.html

Конфигурационные файлы APT

  • /etc/apt/sources.list — список источников пакетов (репозиториев)
  • /etc/apt/apt.conf — основной файл конфигурации APT
  • /etc/apt/preferences — файл предпочтений, управляет тем, какая версия пакета будет установлена в случае наличия в репозитории сразу нескольких версий

Основные команды APT

  • apt-cache search маска — поиск пакета
  • apt-cache show пакет — просмотр информации о пакете
  • apt-get install пакет — установка пакета
  • apt-get remove пакет — удаление пакета
  • apt-get update — обновление кэша доступных пакетов
  • apt-get upgrade — обновление всех пакетов

Источник

Кэширование репозиториев

Содержание

Кэширование (проксирование) репозиториев экономит время и трафик при установке одних и тех же пакетов на множество компьютеров. Это полезно в первую очередь для организаций.

Кэширование работает по тому же принципу, что и обычный прокси сервер: сначала никакого контента на нём нет, при первом запросе клиента кэшер скачивает файл из интернета, отдаёт его клиенту, а копию сохраняет у себя, при следующих запросах кэшер не обращается в интернет и просто отдаёт сохранённый файл. От обычного squid-а кэшер пакетов отличается своей узкой специализацией: он знает про версии deb-пакетов, про отличия индексного файла от deb-пакета, ну и всё такое.

Плюсы кэширования по сравнению с зеркалированием:

Кэшеры бывают разные:

Установка apt-cacher-ng

Вот, собственно, и всё. Конечно, можно донастроить его под себя, скажем, поменять порт (по дефолту 3142) или указать вышестоящий прокси (если сервер с кэшером выходит в интернет через прокси). Конфиг снабжён подробными комментариями, разобраться можно. Но в общем случае сервер настраивать не приходится.

Единственная необходимая настройка — указать клиентам адрес нашего нового кэшера. На клиенте открываем конфиг:

(конечно, packages.example.com меняем на имя своего сервера)

Возможна проблема: при попытке обновить индексы ( apt update ) на клиенте может возникнуть ошибка «Bad redirection (path)», при этом в репозитории файл есть, кэшер его скачивает и сохраняет у себя, но клиенту не отдаёт. Например, у меня такое было с репозиториями Ceph. Если браузером пройти по проблемному адресу (в моём случае это был http://ceph.com/…), то можно обнаружить редирект на другой адрес (у меня http://download.ceph.com/…). Проблема решается заменой в sources.list исходного адреса на адрес после редиректа (я у себя заменил ceph.com на download.ceph.com). Проблема странная и возникает не всегда.

Можно использовать не только для Ubuntu, но и для Debian. А по некоторым признакам, и для CentOS, Gentoo и других (не проверял).

Источник

📑 Кэширование обновлений в Ubuntu/Debian

Очень часто некоторые внутренние корпоративные сервера, особенно на виртуальных машинах, по тем или иным субъективным причинам не имеют выхода в Интернет. По крайней мере у меня в практике такое встречается очень часто.

Но обновления системы проводить нужно. Сразу же напрашивается выход — хранить сервер обновления локально, на одной из машин имеющих доступ к интернету. То-есть использовать apt-mirror.

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

Самый разумный выход использовать сервис apt-cacher-ng. Когда пользователь клиентской машины инициирует обновление или установку какого либо программного обеспечения, его машина подключается к локальному серверу обновлений и запрашивает необходимые пакеты.

Читайте также:  Не получается обнаружить второй дисплей windows 10

Сервер обновлений проверяет, есть ли его последние версии запрошенных пакетов в локальном кэше. Если есть, то пакеты отправляются пользователю. В противном случае apt-cacher-ng скачивает обновлённые версии запрошенных пакетов, а затем отправляет их пользователю. Новые версии остаются в кэше для дальнейшего использования.

Серверная часть

apt-cacher-ng устанавливается из репозитория Ubuntu:.

При желании можно немного подправить конфигурационный файл /etc/apt-cacher-ng/acng.conf:

Обычно меняются только три этих параметра

apt-cacher-ng не создает никаких баз и структур, ничего не сжимает, а хранит все в том виде как в оригинале репозитория. CacheDir нужно указывать с учетом того, что в самом безумном случае на сервере обновлений окажется репозиторий целиком. А это около 40GB.

После изменения конфигурации необходимо перезапустить сервис:

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

На всех клиентах для использования локального сервера обновлений необходимо только создать один файл —

с одной строчкой:

server — естественно нужно заменить на имя или IP- адрес сервера обновлений. Можно приступать к обновлению.

Источник

Инструкции

27 сентября 2021

Командная строка Linux: краткий курс для начинающих

27 сентября 2021

Перенаправление ввода/вывода в Linux

27 сентября 2021

Работа с файлами и каталогами в Linux

26 сентября 2021

Как сгенерировать SSH-ключ для доступа на сервер

23 сентября 2021

Как установить и настроить веб-сервер Apache

23 сентября 2021

Руководство по написанию скриптов в Linux Bash

21 сентября 2021

Введение в Git: настройка и основные команды

21 сентября 2021

Как установить MySQL на Windows

21 сентября 2021

Как установить и использовать MySQL Workbench

20 сентября 2021

Создание нового пользователя и настройка прав в MySQL

© ООО «Селектел», 2008—2021

Полностью изолированные физические серверы любой конфигурации с облачной готовностью

Виртуальные машины с моментальным масштабированием и поддержкой Infrastructure-as-code

В дата-центрах TIER III Москвы, Санкт‑Петербурга и ЛО

Инфраструктура на базе VMware для бизнес-критичных задач любой сложности

Готовые к работе управляемые базы данных PostgreSQL и MySQL™

Полностью готовый к работе кластер Kubernetes для управления контейнерами

Масштабируемое хранилище данных с гибким ценообразованием, поддержкой FTP и S3 API

Запуск кода по запросу или событию без создания и обслуживания сервера

Источник

Ещё один блог сисадмина

пятница, 18 сентября 2009 г.

Как настроить кэш репозитория с помощью apt-cacher

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

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

В этом случае имеется один компьютер, который называется repository-cache (кэш репозитория), этот компьютер будет работать в качестве кэша репозитория, в то время как остальные компьютеры в вашей сети будут пользоваться им, как обычным репозиторием.

Как обычно, вам нужно установить необходимые пакеты на первом компьютере. Поэтому введите в терминале:
Когда команда будет выполнена, пора перейти к файлу настройки /etc/apt-cacher/apt-cacher.conf

2. Настройка Apt-Cacher

И так, откроем главный файл конфигурации apt-cacher’а: /etc/apt-cacher/apt-cacher.conf и начнём редактировать его в соответствии с вашими настройками.

Читайте также:  Вызвать командную строку линуксе

По умолчанию apt-cacher ожидает подключений на порту 3142. Вы можете поменять это значение на то, которое вам нужно.

allowed_hosts: по умолчанию все перечисленные здесь узлы имеют право использовать кэш репозитория. Вы можете изменить это значение, если вы хотите предоставить доступ только определённым узлам. В моём случае, я хочу разрешить доступ моей локальной сети 192.168.1.0/24 и локальному узлу (localhost — 127.0.0.1 и 127.0.1.1 на системах с ubuntu), поэтому я меняю значение следующим образом:
Поскольку 127.0.0.1 разрешён всегда, не обязательно добавлять адрес 127.0.0.1.

generate_reports: Эта директива заставляет apt-cacher создавать ежедневный отчёт по эффективности вашего кэша. По умолчанию это 1, если вы хотите отключить его, установите его в 0.

path_map: Это любопытная директива. Здесь вы можете определить различные псевдонимы для различных узлов репозиториев. На моём компьютере с ubuntu edgy, моя директива path_map выглядит следующим образом:
Позвольте мне немного пояснить. Здесь я создал отображения в следующие имена:

  • debuntu в узел repository.debuntu.org
  • ubuntuand ubuntu-updates в узел archive.ubuntu.com/ubuntu
  • и ubuntu-security в узел security.ubuntu.com

Теперь, чтобы получить доступ к определённому репозиторию, нам требуется просто добавить псевдоним к нашему серверу с кешем репозиториев, например: компьютер_с_кэшем_репозитория:порт/псевдоним

Например, мы можем получить доступ к репозиторию debuntu через http://repository-cache:3142/debuntu и к репозиторию ubuntu secutiry через http://repository-cache:3142/ubuntu-security.

2.2. Включение apt-cacher’а

Чтобы запустить apt-cacher, его нужно включить из файла /etc/default/apt-cacher. Откроем файл /etc/default/apt-cacher и установим AUTOSTART в 1:
Теперь перезапустим apt-cacher:
Теперь apt-cacher запущен, время исправить файлы всех наших клиентов /etc/apt/sources.list на каждом узле в сети, где мы хотим использовать компьютер с кэшем репозитория.

3. Настройка файла sources.list клиентов и серверов

Настало время настроить на клиентских узлах файлы источников apt: /etc/apt/sources.list. Важно использовать кэш репозитория ткаже и на самом сервере, таким образом любые обновления, выполненные сервером, будут заполнять кэш.

Исходный /etc/apt/sources.list:
Чтобы использовать наш кэш репозитория, эти записи необходимо заменить на:
Классно, теперь чтобы каждый каждый узел получал пакеты .deb из нашего репозитория, нужно запустить:
на каждом узле.

4. Импорт существующих пакетов из /var/cache/apt/archives/ в репозиторий apt-cacher

Может случиться, что ваш сервер уже имеет большое количество пакетов, находящихся в локальном кэше репозитория: /var/cache/apt/archives/. apt-cacher содержит инструмент, позволяющий имортировать эти файлы в репозиторий apt-cacher’а.

Это большое количество полезных сценариев можно найти в каталоге /usr/share/apt-cacher/. Интересующий нас называется apt-cacher-import.pl. Для импорта файлов .deb из каталога /var/cache/apt/archives в репозиторий apt-cacher запустите:
Его нужно запускать от имени пользователя root или файлы .deb могут не скопироваться в кэш репозитория.

Теперь каталог /var/cache/apt-cacher/packages/ должен пополниться целой кучей пакетов.

5. Получение отчётов об использовании вашего кэша репозитория

Если вы оставили значение директивы generate_reports равным 1, apt-cacher будет составлять отчёты по использованию кэша каждый день.

Вы можете получить к ним доступ по адресу: http://repository-cache:3142/report

Если вам нужно перегенерировать отчёт, запустите:
6. Заключение

apt-cacher — это простой и эффективный пакет, который одновременно экономит ваше время и пропускную способность канала при использовании нескольких компьютеров, работающих на одинаковом дистрибутиве, как это бывает в домашней сети или в компании.

Источник

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