Настройка локальных репозиториев в Linux
Для системных администраторов данная тема является чуть ли не первоочередной по важности. Ведь обычно любая организация, заботясь о безопасности и надёжности работы своих серверов и вообще сетей, разрабатывает и внедряет определённые политики безопасности. Которые, в свою очередь, предусматривают ограничения на доступ в открытый интернет для большинства клиентских машин из локальной сети. Однако и без этого никак нельзя, поскольку при их обслуживании необходимо проводить обновления программного обеспечения (ПО). Распространение этих обновлений при помощи сменных носителей очень неудобно, а при наличии большого числа компьютеров в обслуживаемой локальной сети практически невозможно. В данном случае, рациональным вариантом является организация локальных репозиториев пакетов, предварительно загруженных из Интернет. О двух основных подходах при решении данной задачи на примере систем Ubuntu будет далее изложено в данной статье.
Как работают репозитории пакетов в системах Linux?
Разработчики для поддержки своих дистрибутивов и комфортной работы пользователей снабжают системы управления пакетами (СУП) специальными ссылками. Они указывают на удалённые сервера, на которых хранятся самые актуальные и протестированные разработчиками пакеты ПО для данного дистрибутива. Благодаря этим ссылкам СУП «знает» когда и откуда загрузить и установить обновления пакетов. Эти ссылки могут указывать как на удалённый ресурс, так и на локальный. Во втором случае это может быть как другой компьютер в локальной сети, так и локальный накопитель и/или даже, если постараться — оптический привод.
Сами эти ссылки хранятся в файле sources.list, который в Ubuntu расположен по адресу /etc/apt/sources.lis t. Сама ссылка (для Ubuntu) выглядит примерно так:
Это и есть один из системных репозиториев, включенный в дистрибутив изначально. Существуют также репозитории, организованные отдельными проверенными пользователями, например:
Это репозиторий, созданный разработчиком среды разработки CodeLite, специально для Ubuntu. И эта ссылка была добавлена в файл sources.list уже вручную самим пользователем-администратором компьютера. После чего становится возможной автоматическая установка актуальных и стабильных версий пакетов CodeLite, а также их обновление. А вот так может выглядеть ссылка на репозиторий, хранимый на оптическом носителе:
Как видно, ключевым словом, определяющим протокол доступа является значение, следующее после «deb». Для оптического носителя это «cdrom», а для доступа по сети — «https».
Получается, что источники репозиториев можно дополнять по собственному усмотрению, предварительно организовав соответствующим образом хранилище пакетов.
Использование прокси для организации локального репозитория
Данный метод подразумевает доступ к репозиториям через кеш на прокси-компьютере, который имеет прямое подключение в Интернет. Механизм работы такого локального репозитория заключается в следующем:
Итак, для начала необходимо установить всё необходимое, т. е. веб-сервер и саму утилиту кеширования пакетов:
Далее, необходимо определить, какие клиенты должны иметь доступ к кешу репозитория, отредактировав конфигурационный файл /etc/apt-cacher/apt-cacher.conf:
Как можно видеть, просто указывается диапазон нужных IP-адресов. После сохранения сделанных настроек необходимо перезапустить веб-сервер Apache:
Теперь необходимо указать клиентам, куда им нужно обращаться для установки пакетов и обновлений. Для этого на клиентских машинах нужно создать файл /etc/apt/apt.conf.d/01proxy с помощью того же редактора nano:
И добавить в него строку со следующей инструкцией:
Здесь в качестве адреса сервера, на котором установлен и работает apt-cacher указывается 192.168.1.100. Конечно, это может быть любой другой адрес, настроенный для этого сервера.
Теперь можно проверить работу локального репозитория (а точнее удалённого, но доступного через прокси), выполнив команду обновления данных о доступных пакетах:
APT-MIRROR – полноценный локальный репозиторий
Данный способ является более «продвинутым» по сравнению с использованием apt-cache. Поскольку предполагает наличие полноценного хранилища пакетов прямо на локальном компьютере/сервере или в локальной сети. Но сначала такое хранилище необходимо создать, загрузив в него все необходимые пакеты. Как и в случае с apt-cache, в качестве распространителя пакетов выступает веб-сервер Apache. Порядок настройки локального репозитория при помощи утилиты apt-mirror следующий:
Итак, установка необходимых утилит и пакетов:
Далее, нужно создать локальное хранилище пакетов, пусть это будет каталог /localrepo :
Теперь в конфигурационном файле /etc/apt/mirror.list нужно отредактировать строку с инструкцией «set base_path». Указав в ней только что созданный каталог для хранилища:
Это может занять длительное время, в зависимости от скорости соединения с Интернет. Данную команду очень полезно добавить в список регулярных процедур cron, чтобы локальный репозиторий обновлялся автоматически.
После того, как локальный репозиторий будет полностью загружен, его содержимое должно быть примерно следующим:
Для последующего удобства настройки клиентов полезно создать символическую ссылку на хранилище, которое содержится в каталоге mirror:
Теперь ссылка ubuntu будет использоваться для задания репозиториев на стороне клиентов с помощью редатирования файла /etc/apt/sources.list:
Открыв этот файл (с использованием команды sudo) с помощью редактора nano, нужно теперь добавить в него следующие репозитории:
Здесь адрес 192.168.1.100 — это IP-адрес компьютера, на котором был создан и настроен локальный репозиторий.
Теперь, для работы с пакетами можно использовать обычные команды apt:
Заключение
В заключение следует напомнить, что способы организации локальных репозиториев, описанные выше подходят для систем на базе формата debian-пакетов. Для систем, основанных на RPM следует использовать другие инструменты.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как настроить репозитории в Ubuntu 20.04
Установка ПО в системах Linux выполняется из репозиториев, которые по умолчанию содержат большое количество пакетов. Однако иногда необходимого софта нет в комплекте или его версия устарела. В этом случае вы можете добавить требуемый репозиторий и произвести установку из него.
Ниже мы настроим репозитории на сервере Ubuntu 20.04.
Список репозиториев в Ubuntu
Просмотреть все репозитории:
Они также могут находиться в одном из файлов в папке /etc/apt/sources.list.d/
Чтобы отключить один репозиторий, добавьте следующий комментарий в его строку:
# deb http://archive.ubuntu.com/ubuntu focal multiverse
Добавление репозиториев в Ubuntu
Чтобы добавить репозиторий, необходимо узнать его адрес у разработчика ПО и использовать команду apt-add-repository с подобным синтаксисом:
apt-add-repository ‘deb http://repository_address version branch’
Иногда требуется сначала установить ключ GPG. В качестве примера возьмем MariaDB.
Команда, используемая для добавления репозитория:
add-apt-repository ‘deb [arch=amd64,arm64,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.5/ubuntu focal main’
Удаление репозиториев
Команда, используемая для удаления:
PPA-репозиторий в Ubuntu
Во время установки PPA-репозитория система автоматически распознает репозиторий и скачивает необходимые ключи.
Для удаления PPA-репозитория:
После редактирования списка репозиториев не забудьте обновить список пакетов.
Репозитории
Содержание
Программы и обновления в Ubuntu устанавливаются преимущественно из репозиториев. В данной статье объясняется, что такое репозиторий, зачем он нужен, как устроен и как пользоваться репозиториями и устанавливать из них программы.
Введение
Репозитории – это специальные сервера-хранилища таких файлов. Их также можно назвать «Источниками приложений». Пользовательские компьютеры подключаются к репозиториям по сети или через интернет и при помощи специальных утилит (таких как Synaptic) позволяют Вам увидеть, какие пакеты у Вас установлены, какие доступны для установки. Большинство утилит поддерживают простой поиск по ключевым словам и способны разбивать группы пакетов по категориям.
Использование связки репозиторий-утилита позволяет использовать простой, централизованный метод установки/удаления программ, а также предоставляет удобный способ выкладывания обновлений.
В свежеустановленной Ubuntu уже подключены необходимые репозитории, однако никто не запрещает Вам использовать другие, сторонние репозитории.
Зачастую, версии ПО, доступные через репозитории, не всегда самые свежие, однако эти версии как правило лучше интегрированы в Ubuntu и в некоторых случаях более стабильны.
Репозитории Ubuntu
В Ubuntu всё программное обеспечение делится на четыре секции, называемые компонентами, чтобы отразить разницу в лицензии и уровне доступной поддержки.
Пакеты распределяются по компонентам таким образом:
Существует четыре основных репозитория Ubuntu.
Кроме официальных, существует множество репозиториев от авторов программ и от тех, кто не поленился собрать из исходников пакет и поделиться им с другими. Launchpad предлагает создавать PPA-репозитории — Personal Package Archive, обычно небольшой репозиторий, в который его хозяин складывает исходники, а пользователи на выходе получают уже готовый deb-пакет.
Подключение репозитория
Репозитории Ubuntu содержат большое количество программ, однако существуют программы, отсутствующие в репозиториях Ubuntu, и возможно, Вы хотели бы их использовать. Существует много сторонних репозиториев, подключив которые Вы получите доступ к дополнительному ПО. Сделать это можно как при помощи графического интерфейса, так и в консоли.
При помощи графического интерфейса
Для подключения репозитория выполните следующие шаги.
В появившемся окне выберите вкладку «Другое ПО», нажмите кнопку «Добавить».

В появившемся окне заполните поле «Строка APT:» и нажмите кнопку «Добавить источник».

Источник будет добавлен и включен, нажмите кнопку «Закрыть».

Т.к. был подключен новый источник программного обеспечения, необходимо обновить информацию о пакетах. Появится окно, с предложением это сделать. Нажмите «Обновить». 
При помощи консоли (рекомендуемый способ)
Начиная с Ubuntu 10.04 добавлять репозиторий можно одной командой, вот пример для ppa-репозитория:
При помощи консоли
и добавьте туда APT строку. Чем «выше» (т.е. ближе к началу файла) стоит строка, тем больший приоритет получит добавленный репозиторий. Должно получиться примерно так:
Далее следует обновить список пакетов. Для этого выполните:
Теперь Вы можете устанавливать пакеты из нового репозитория, правда, для комфортной работы вам придётся так же импортировать в систему ключ репозитория, т.к. у вас постоянно будет появляться такое предупреждение:
Устройство репозитория
Пакет (например *.deb файл) размещается на общедоступном интернет-ресурсе (например archive.ubuntu.com). Затем информация о пакете заносится в файл Packages, который, в свою очередь, для удобства работы пакуется в Packages.gz
Пример записи в файле Packages для пакета abiword :
Файлов Packages.gz может быть несколько (например, по одному для каждой архитектуры). Файл Release содержит описание репозитория в целом и ссылки на различные Packages.gz
Общая же схема работы выглядит примерно так:
Защита репозиториев
Поскольку репозитории большей частью расположены в интернете, существует вероятность подмены репозитория злоумышленником на свой, содержащий модифицированные пакеты. Таким образом, пользователь может установить себе модифицированный пакет и тем самым поставить безопасность своей системы под угрозу. Многие репозитории имеют защиту от подмены. Такая защита реализована при помощи сверки цифровых подписей репозитория и клиента. В случае, когда репозиторий имеет цифровую подпись, а пользовательский компьютер содержит открытый ключ для этого репозитория — такой репозиторий считается доверенным.
В Ubuntu по умолчанию доверенными являются репозитории на установочных дисках и основные интернет репозитории — archive.ubuntu.com. При наличие на пользовательском компьютере нескольких подключенных репозиториев, предпочтение отдается доверенным.
Где repo.key — полученный вами ключ репозитория.
Руководство по Ubuntu для новичков
Содержание
Репозитории
Механизм весьма простой. Он имеет несколько основных преимуществ: во-первых, вы можете добавить сколько угодно репозиториев, т.е. источников программного обеспечения, система автоматически всё просмотрит и учтёт, вам же надо будет просто указать, какую программу вы хотите поставить и всё, дальше система всё сделает за вас. Во-вторых, система автоматически обновляет индексы, благодаря этому при выходе новой версии установленной у вас программы система сообщит вам об этом и предложит скачать и установить её. Ну и в-третьих, кроме удобства в использовании, механизм репозиториев позволяет вам обезопасить себя от различного вредоносного программного обеспечения. Если вы добавляете в систему только репозитории, которым доверяете, и не устанавливаете deb пакеты напрямую, скачивая их с сомнительных сайтов, а пользуетесь только внутренней системой установки программ Ubuntu, то вы гарантированно не получите никакой вредоносной программы, поскольку все пакеты будут получены из доверяемых источников.
Управление репозиториями

Каждое поле позволяет подключить один из основных репозиториев для вашей версии Ubuntu. Если вы хотите иметь доступ ко всему программному обеспечению, вам нужно поставить все галочки, кроме исходного кода (конечно, если только он вам зачем-то вдруг не понадобился).
Следующая вкладка, «Другое ПО», позволяет подключать к системе дополнительные репозитории:


Все внесённые за время работы в программе изменения в источники приложений можно легко отменить, нажав на кнопку «Восстановить» внизу окна:

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

Если у вас есть соединение с интернетом, то лучше всегда соглашайтесь. Без индексных файлов система не будет корректно работать с репозиториями, а значит вы не будете получать информацию об обновлениях и не сможете устанавливать новые приложения. После нажатия на кнопку «Обновить» запустится процесс обновления индексов:

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

Эта команда запросит ключ 12345678 с сервера ключей 6) Ubuntu и добавит его в систему. Собственно, имя ключа всегда выглядит как 8 буквенно-цифровых символов, поэтому если вам дано только оно, то для импортирования ключа вы вполне можете использовать эту команду, изменив 12345678 на нужное значение.
Добавление репозитория Medibuntu
Итак, узнать про Medibuntu можно на официальном сайте: http://www.medibuntu.org/. На нём есть ссылка Repository Howto, пройдя по которой вы попадёте на страницу с описанием способа добавления репозитория и установки некоторых полезных пакетов. Одна из первых же секций озаглавлена «Adding the Repository» и в ней приводится одна гигантская команда, которая, по заверениям, должна добавить репозиторий и его подпись в систему:

Напоследок хочется обратить ваше внимание на вкладку «Обновления» приложения управления источниками программного обеспечения:

Репозитории на компакт-дисках
Поэтому если у вас нет интернета, то самым разумным решением проблемы с установкой новых программ для вас являются, пожалуй, так называемые срезы репозиториев. Фактически это содержимое стандартных интернет-репозиториев Ubuntu, записанное на диски и оформленное так же в виде репозитория. К сожалению, централизованного источника распространения срезов нет, однако вы можете поискать их на торрент-трекерах или же у друзей.
Пожалуй, на этом знакомство с механизмом подключения дополнительных источников программного обеспечения можно закончить. Теперь же я немного расскажу про самое популярное место размещения сторонних репозиториев и, соответственно, программ для Ubuntu:
Ubuntu server расположение репозиториев
При установке пакетов в линукс на основе дистрибутива Debian (Ubuntu, Linux Mint и др.) пакеты загружаются из одного или нескольких репозиториев программного обеспечения apt. Репозиторий — это сетевой сервер или локальный каталог, содержащий пакеты deb и файлы метаданных.
Хотя в репозиториях по умолчанию доступны тысячи приложений, иногда Вам может потребоваться установить программное обеспечение из стороннего репозитория.
В этой заметке мы покажем Вам два способа добавления репозитория apt в системах на основе дистрибутива Debian. Первый способ заключается в использовании команды add-apt-repository, а второй — в ручном добавлении репозитория с помощью текстового редактора.
В Ubuntu (и всех других дистрибутивах Debian) репозитории программного обеспечения определены в файле /etc/apt/sources.list или в отдельных файлах в директории /etc/apt /sources.list.d/
Имена файлов репозитория внутри каталога /etc/apt/sources.list.d/ должны заканчиваться на .list
Общий синтаксис принимает следующий вид:
deb http://repo.tld/ubuntu distro component
Первая запись в строке определяет тип архива. Тип архива может быть либо deb, либо deb-src. Deb подразумевает, что репозиторий содержит deb-пакеты, в то время как deb-src подразумевает исходные пакеты.
Вторая запись — это URL репозитория.
Третья запись указывает кодовое имя дистрибутива, например beaver, xenial и так далее.
Последние записи — это компоненты или категории репозитория. Репозитории Ubuntu по-умолчанию разделены на четыре компонента — main, restricted, universe и multiverse. Как правило, сторонние репозитории имеют только одну категорию.
Большинство репозиториев предоставляют открытый ключ для аутентификации загруженных пакетов, который необходимо загрузить и импортировать.
Чтобы иметь возможность добавлять или удалять репозиторий, Вы должны войти в систему либо как пользователь с доступом sudo, либо как root.
1. Добавление через add-apt-repository
Сначала необходимо убедиться, что у Вас есть команда add-apt-repository. Если при ее выполнении видите: add-apt-repository command not found, значит ее нет, необходимо установить пакет software-properties-common.
$ sudo apt update && sudo apt install software-properties-common
Синтаксис добавления репозитория через add-apt-repository таков:
add-apt-repository [options] repository
Где repository — это репозиторий, который необходимо добавить в sources.list (например deb http://repo.tld/ubuntu distro component или PPA репозиторий в формате ppa:/).
Чтобы увидеть все возможности команды add-apt-repository выполните man add-apt-repository в терминале.
Добавление обычных репозиториев
Допустим, мы хотим установить MongoDB из оффициального репозитория.
Первое, что необходимо сделать — установить public key (публичный ключ):
Добавим теперь репозиторий MongoDB:
sudo add-apt-repository ‘deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse’
А сейчас уже можно установить MongoDB:
$ sudo apt update && sudo apt install mongodb-org
Чтобы удалить репозиторий, используйте опцию —remove:
Добавление PPA репозиториев
Personal Package Archives (PPA) это сервис, который позволяет пользователям загружать исходные пакеты Ubuntu, построенные и опубликованные с помощью Launchpad в качестве репозитория apt.
Когда Вы добавляете новый PPA репозиторий, команда add-apt-repository создает новый файл в директории /etc/apt/sources.list.d/
Для примера установим FFmpeg версии 4.x
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-4
Нажмем Enter когда нас попросят об этом.
Press [ENTER] to continue or Ctrl-c to cancel adding it.
Публичный ключ PPA автоматически скачается и зарегистрируется. Теперь можно установить необходимый пакет:
$ sudo apt update && sudo apt install ffmpeg
2. Ручное добавление репозитория
Если Вы хотите, то можете добавить необходимый репозиторий в файл /etc/apt/sources.list вручную.
Для примера включим репозиторий CouchDB и установим из него пакеты. CouchDB — это бесплатное, отказоустойчивое NoSQL решение с открытым исходным кодом, поддерживаемое Apache Software Foundation.
Откройте файл sources.list любимым редактором:
sudo vim /etc/apt/sources.list
И добавьте в конце файла новой строкой запись:
deb https://apache.bintray.com/couchdb-deb bionic main
Вместо редактирования файла, можно выполнить лишь одну такую команду:
Более правильным, конечно, будет не добавление строки в файл sources.list, а вынесение репозитория в отдельный файл, который помещается в каталог /etc/apt/sources.list.d/ (как это описывали выше).
Далее нам необходимо загрузить публичный ключ. Это можно сделать командами wget или curl:
Вывод должен быть просто OK, что значит GPG ключ успешно импортирован.
Перед установкой нового пакета, обновим список доступных репозиториев:
А теперь установим:
$ sudo apt install couchdb
Заключение
Мы показали Вам, как добавить репозитории в Linux на базе Debian. Эти же инструкции применимы к любому дистрибутивам Ubuntu, Kubuntu, Linux Mint, Kali Linux, Elementary OS и др.
Не стесняйтесь оставлять комментарии, если у Вас есть какие-либо вопросы.





