Из этой статьи вы узнаете что такое репозитории в Linux. Мы научимся их настраивать на примере Debian 11 и Ubuntu 22.04.
- Что такое репозиторий
- Конфиги со списком репозиториев
- Классы релизов в Debian
- Вариант использования официальных репозиториев
- Добавление сторонних репозиториев
- Открытый ключ репозитория
- Проверка добавленного репозитория
- Что такое репозиторий программных пакетов?
- Как работает репозиторий программных пакетов?
- Действия на стороне клиента
- Действия на стороне сервера
- Основные элементы
- Преимущества размещения репозиториев пакетов программного обеспечения
- ДжФрог
- Пакетоблако
- Сонатип
- CloudRepo
- Джитпак
- Нпм Про
- Пакеты GitHub
- Cloudsmith
- Хеликс Артефакты
- Артефакт кода AWS
- Мякоть
- MyGet
- ProGet
- Гемфури
- Вывод
- Как устанавливаются программы в Linux?
- Что такое репозиторий в Linux?
- Какие бывают репозитории в Linux?
- Как работать с репозиториями в Linux?
- Репозиторий EPEL
- Репозиторий REMI
- Репозиторий RPMFusion
- Репозиторий ELRepo
- Репозиторий NUX-dextop
- Хранилище GhettoForge
- Хранилище психотических ниндзя
- Репозиторий сообщества IUS
Что такое репозиторий
Репозиторий — это своеобразное хранилище приложений. У многих GNU/Linux дистрибутивов есть свои репозитории. А также разработчики какого-нибудь отдельного программного обеспечения могут создать свой репозиторий. Но в этом случае такой репозиторий нужно разделить на ветки, одна ветка будет подходить для одной Linux системы, а другая для другой.
В репозиториях, которые подходят для Debian и Ubuntu приложения хранятся в виде архивов. Такие архивы называются пакетами. Эти пакеты имеют особый формат — deb. Есть ещё другой, популярный, формат пакетов — rpm, но системы полагающиеся на такие пакеты я не рассматриваю.

Linux сервера и их репозитории
На этом уроке мы познакомимся с подключением системных и сторонних репозиториев. А пакетные менеджеры рассмотрим позже.
Конфиги со списком репозиториев
Пакетные менеджеры, которые умеют устанавливать пакеты из репозиториев, должны знать адреса репозиториев. И эти адреса записываются в конфиг — /etc/apt/sources.list. А также можно создавать дополнительные конфиги с расширением .list в каталоге /etc/apt/sources.list.d/. Всё это справедливо и для Debian и для Ubuntu.
Если помните, в процессе установки систем мы выбирали репозиторий:
Этот файл состоит из строк, а строки состоят из следующих столбцов:
Классы релизов в Debian
Рассматривая выше ветки репозиториев Debian мы увидели следующее:
Но, помимо кодовых имён версий системы, в названиях веток, можно использовать специальные классы релизов:
То есть вы можете изменить свои репозитории на testing, и быть на острие прогресса:
### Это только пример, существует большая вероятность что система очень скоро повредится из за непроверенных обновлений ###
deb http://deb.debian.org/debian/ testing main
deb-src http://deb.debian.org/debian/ testing main
deb http://security.debian.org/debian-security testing-security main
deb-src http://security.debian.org/debian-security testing-security main
deb http://deb.debian.org/debian/ testing-updates main
deb-src http://deb.debian.org/debian/ testing-updates main

Файл Release в репозитории для Ubuntu Jammy
Он содержит информацию о данной ветке репозитория, например для Ubuntu Jammy файл содержит следующее:
Origin: Ubuntu
Label: Ubuntu
Suite: jammy
Version: 22.04
Codename: jammy
Date: Thu, 21 Apr 2022 17:16:08 UTC
Architectures: amd64 arm64 armhf i386 ppc64el riscv64 s390x
Components: main restricted universe multiverse
Description: Ubuntu Jammy 22.04
MD5Sum:
*** а здесь контрольные суммы для каждого пакета из репозитория ***
Файл Release — один из самых важных файлов для работы репозитория. Когда пакетный менеджер обновляет список пакетов, то он открывает адрес репозитория и читает этот файл. Если этого файла нет, то репозиторий будет помечен как неисправный и не будет использоваться.
Если вы ещё раз посмотрите на файл Release в репозитории, то можете заметить там строчку:
Здесь прописаны архитектуры пакетов, которые хранятся в репозитории. Прописывая источник репозитория, например в конфиге /etc/apt/sources.list вы можете указать определённую архитектуру, чтобы предотвратить скачивание и установку пакетов для других архитектур.
Это делается таким способом:
Вариант использования официальных репозиториев
Для того чтобы уменьшить вероятность поломки вашей системы из-за непроверенных обновлений, можно немного сократить количество репозиториев в системах Debian и в Ubuntu.
Вообще в Debian дан список самых безопасных репозиториев по умолчанию. Можем лишь закомментировать репозитории с исходниками, так как скорее всего вам они пока не понадобятся. Напомню, что такие строки начинаются со слова deb-src. А если понадобятся вы их просто раскомментируете. После правки у нас осталось 3 источника пакетов:
Ubuntu при установке прописала намного больше своих репозиториев. Но их тоже можно свести к трем. Например, я считаю нужным отключить universe, multiverse и jammy-backports репозитории на сервере. После правки список репозиториев также состоит из 3-ёх строк:
Чтобы применить изменения, выполните на обоих системах команду:
$ sudo apt update
Эта команда подключится к каждому репозиторию, посмотрит какие пакеты можно обновить и из каких источников. И сохранит локальных кэш. После выполнения этой команды система будет знать какие пакеты из каких репозиториев можно получить, а также версии этих пакетов. Но если в репозиторий добавят более новую версию какого-нибудь пакета, то система об этом узнает лишь после следующего выполнения этой команды.
А если хотите обновить систему, то выполните команду:
$ sudo apt upgrade
Эта команда уже скачивает все обновления и устанавливает их.
Кстати утилита apt — это и есть менеджер пакетов. Рассмотрим её и другие менеджеры пакетов в следующих статьях.
Добавление сторонних репозиториев
Добавлять репозитории можно в основной конфиг: /etc/apt/sources.list или создавать отдельные конфиги в каталоге /etc/apt/sources.list.d/. Сам я считаю что правильнее для каждого стороннего репозитория создавать отдельные конфиги.
Например, чтобы подключить репозиторий nginx создайте следующий конфиг. Для Debian:
Или для Ubutnu:
Допустим, мы прописали дополнительный репозиторий для nginx, но как системе понять из какого репозитория брать пакет для установки? Ведь пакеты для nginx есть и в системном репозитории и в репозитории от самого nginx. Чтобы ответить на этот вопрос придумали приоритеты репозиториев.
По нашему примеру для nginx нужно создать следующий файл:
$ sudo nano /etc/apt/preferences.d/99nginx
Package: *
Pin: origin nginx.org
Pin: release o=nginx
Pin-Priority: 900
То-есть Package и Pin это условия для назначения приоритета, а Pin-Priority это действие (назначение приоритета). В нашем примере получается следующее: если имя пакета любое, но владелец репозитория nginx.org и в файле Release прописано «Origin: nginx«, то для таких пакетов ставим приоритет 900.
Приоритет может быть в следующих диапазонах:
Приоритеты с 500 по 990 и с 990 по 1000 очень похожи. Чтобы их отличить нужно понять что такое целевой выпуск. Для Ubuntu или Debian это название версии дистрибутива. Например для Ubuntu — jammy, а для Debian — bullseye. Но это имя ещё нужно задать таким способом:
Открытый ключ репозитория
И так, репозиторий мы добавили, приоритет настроили. Давайте попробуем применить изменения:
И тут мы видим ошибку, что нам не хватает открытого ключа. Я привёл пример для Debian, но в Ubuntu будет подобная ситуация. Дело в том что современные репозитории шифруются с помощью закрытого ключа и чтобы его использовать, нам нужно установить в систему открытый ключ.
Чтобы это сделать, вначале установим необходимые инструменты:
Внимание! Утилита gnupg2 для Ubuntu доступна только в репозитории universe, если вы закомментировали эти источники, то разкомментируете их. Это строчки:
deb http://ru.archive.ubuntu.com/ubuntu jammy universe
deb http://ru.archive.ubuntu.com/ubuntu jammy-updates universe
И не забудьте применить изменения, выполнив:
$ sudo apt update
А дальше скачаем открытый ключ (с помощью wget):
$ wget https://nginx.org/keys/nginx_signing.key
И пробуем ещё раз применить изменения:
На этот раз всё прошло успешно.
Кстати, если вы хотите в источнике пакетов прописать архитектуру и открытый ключ, то это делается через пробел:
Проверка добавленного репозитория
Ну и чтобы понять из какого репозитория будет установлен пакет, выполните команду:
Из вывода становится ясно что пакет nginx ещё не установлен в систему, а кандидатом на установку является пакет с версией 1.20.2 из репозитория http://nginx.org/packages/debian. Приоритет у всех пакетов, кстати стал равным = 990. Это произошло после того, как мы установили целевой выпуск = bullseye. Так как все репозитории относятся к этому выпуску, то на назначенный мною приоритет система перестала смотреть, а назначила репозиториям для bullseye такой приоритет.
Мы узнали что такое репозитории. Узнали что есть официальные репозитории для системы и они прописываются в конфиг /etc/apt/sources.list. А также есть сторонние репозитории и для них лучше создавать свои конфиги в каталоге /etc/apt/sources.list.d/.
Научились добавлять сторонний репозиторий на примере nginx. Узнали про приоритеты репозиториев и открытые ключи. А также узнали что такое целевой выпуск.

Получите надежный и безопасный репозиторий пакетов для эффективного и продуктивного сотрудничества в команде DevOps.
Репозитории пакетов программного обеспечения помогают разработчикам создавать, отслеживать и поддерживать пакеты программного обеспечения. Репозиторий кода имеет инструмент управления репозиторием, который позволяет разработчикам получать доступ к пакетам приложений, интегрировать пакет с системами контроля версий и отслеживать статус развертывания пакетов.
Возможно, вы много слышали о популярных реестрах кода, таких как репозиторий Python, репозиторий npm и репозиторий Maven для проектов Python, Node.js и Java соответственно. Ниже приведен список популярных репозиториев для хостинга пакетов для беззаботной разработки программного обеспечения.
Что такое репозиторий программных пакетов?
Если вы являетесь частью команды DevOps, вы, должно быть, много слышали о репозиториях пакетов программного обеспечения, таких как репозиторий Maven или репозиторий Python. В основном вы обнаружите, что разработчики программного обеспечения часто используют этот термин. Если вы новичок в отрасли или энтузиаст разработки приложений, вы должны знать об этом больше.
Репозиторий программного кода похож на центр обработки данных, где для развертывания или дальнейшей разработки доступны многочисленные программные пакеты. Благодаря размещению пакетов в репозиториях разработчики могут больше сотрудничать в любом совместно используемом проекте. С точки зрения конечного пользователя, пользователи могут легко получить доступ к любому обновленному или старому программному обеспечению, в котором они нуждаются.
Репозитории программного обеспечения также позволяют компьютерам Linux получать доступ к нужным им приложениям по защищенному каналу. Таким образом, Linux менее уязвим для компьютерных вирусов, поскольку его приложения недоступны в Интернете. Обычно разработчики публикуют Linux-совместимые приложения через репозитории хостинга пакетов.
Репозитории кода, такие как репозиторий npm, репозиторий Maven или репозиторий Python, поставляются с инструментом управления репозиторием или системой контроля версий для обновления пакетов и контроля всех загруженных версий пакетов.
Как работает репозиторий программных пакетов?
Авторитетные репозитории программного обеспечения тесно сотрудничают с системой безопасности цифровых данных, чтобы защитить свою платформу от вредоносных программ. Поэтому производители репозиториев разработали современную систему контроля доступа.
Назначенные узлы или клиентские компьютеры поставляются с предопределенными системами контроля разрешений. Репозитории программного обеспечения также имеют уникальные цифровые подписи. Когда система контроля разрешений находит соответствующую цифровую подпись репозитория, сервер разрешает компьютеру доступ к его сохраненным исходным кодам или развертываемым пакетам.
Действия на стороне клиента
Вы можете получить доступ к репозиторию кода с клиентского устройства, такого как компьютер с Linux. Он будет содержать менеджер пакетов. Менеджеры пакетов позволяют вам установить пакет программного обеспечения из репозитория или обновить пакет с вашей рабочей станции.
Действия на стороне сервера
Менеджер репозитория или система контроля версий обычно управляет репозиторием кода. Менеджеры репозиториев также предоставляют кэширующий прокси-сервер при объединении других местоположений репозитория в один URL-адрес.
Менеджер репозитория также может удалять ненужные артефакты DevOps, если вы их не выпускаете.
Основные элементы
Магистраль, теги и ответвления являются основными элементами репозитория пакетов.
Магистраль обычно содержит последнюю версию проекта разработки компьютерного приложения. Эти файлы являются дополнительными ресурсами и исходным кодом программного обеспечения.
Разработчик может создать ветку, если вносит существенные изменения в программный код. Таким образом, ветки обычно хранят новый угол разработки любого программного обеспечения в конвейере разработки. Если ветвь эффективна, разработчик объединяет ее со стволом. Разработчик также может прекратить работу ветки, если внесет какие-либо нежелательные изменения.

Разработчики используют различные теги для сохранения разных версий программного обеспечения. Например, команда DevOps создает «тег выпуска» каждый раз, когда публикует новую версию приложения.
Преимущества размещения репозиториев пакетов программного обеспечения
Ваш проект по разработке программного обеспечения получит множество преимуществ, если вы воспользуетесь услугами репозитория хостинга пакетов. Несколько жизненно важных преимуществ:
Преимущества репозитория пакетов многочисленны, и вот некоторые из популярных платформ, которые вы можете попробовать:
ДжФрог

ДжФрог является надежным поставщиком услуг репозитория кода с различными специализированными услугами через свои продукты, такие как JFrog Container Registry, Artifactory, Pipeline, Distribution, Xray и Connect. Он предлагает различные службы репозитория, такие как репозиторий npm, репозиторий Python и репозиторий Maven.
Таким образом, платформа работает как решение от начала до конца для разработки программного обеспечения от разработки до производства. Он предлагает свои услуги через собственные и облачные решения.
Если вам нужны услуги для проекта DevOps корпоративного уровня, вы можете выбрать локальный хостинг. Напротив, если вы представляете малый бизнес или стартап, вы можете получить облачные услуги в небольшом масштабе и обновлять их по мере увеличения количества пользователей.
Пакетоблако
Пакетоблако — это еще один репозиторий кода, который вы можете использовать для надежной, безопасной и быстрой разработки программного обеспечения. Он также позволяет доставлять пакеты распространения программного обеспечения в любую инфраструктуру через выделенный REST API и интерфейс командной строки.

Он предлагает уникальные продукты для различных языков разработки и платформ. Его важными предложениями являются реестр NPM, пакеты Debian, репозиторий Maven, пакеты RPM, пакеты RubyGem и репозиторий Python.
Он предлагает планы подписки для всего сообщества разработчиков программного обеспечения с гибкими вариантами, такими как бесплатный план, план Pro и план Enterprise. Бесплатный план подходит вам, если вы разработчик-одиночка, изучающий процесс гибкой разработки программного обеспечения или DevOps.
Сонатип

Вы можете думать о Сонатип если вам нужен эффективный инструмент для управления репозиторием программного обеспечения. Его продукты, такие как Nexus Repository OSS, — это бесплатный инструмент, который можно получить, если вы хотите самостоятельно управлять репозиторием кода.
С другой стороны, Nexus Repository Pro имеет специальную поддержку. Оба продукта помогают универсально управлять артефактами и двоичными файлами. Платформы также поддерживают различные действия DevOps для разработки программного обеспечения. Например, вы можете хранить и распространять компоненты репозитория npm и Maven.
Он поддерживает популярные инструменты разработки программного обеспечения, такие как IntelliJ, Eclipse, Jenkins, Hudson, Docker и многие другие.
CloudRepo

Если вы ищете специализированный репозиторий кода для проектов Python и Maven, попробуйте CloudRepo. Для вашего репозитория Python или репозитория Maven он предлагает безопасную, частную и простую платформу для совместного использования, управления и распространения двоичных файлов.
Он предлагает различные репозитории для размещения пакетов для проектов DevOps, таких как общедоступные репозитории, прокси-репозитории, частные репозитории, репозитории выпусков, репозитории моментальных снимков, веб-перехватчики и т. д.
CloudRepo подойдет вам, если вы являетесь издателем программного обеспечения, стартапом, командой разработчиков приложений или группой разработчиков программного обеспечения.
Джитпак
Джитпак — это удобный репозиторий пакетов для проектов DevOps, использующих Git для управления исходным кодом. Он предлагает различные функции разработки программного обеспечения, такие как публикация документации приложений, статистика данных, моментальные снимки, частные репозитории и пользовательские домены.

Это репозиторий пакетов на базе CDN. Таким образом, вы можете доставлять артефакты DevOps своей команде разработчиков в любой точке мира через сеть доставки контента (CDN) с высокой скоростью загрузки.
Нпм Про
Математика N-й перестановки, широко известная как нпм Про является одним из крупнейших репозиториев программного обеспечения с мировым признанием. Платформа поддерживает как публичные, так и частные проекты DevOps.

Например, вы увидите, как разработчики компьютерных приложений со всего мира используют эту облачную платформу для заимствования или совместного использования пакетов программного обеспечения. Кроме того, предприятия и стартапы используют npm Pro для управления своими артефактами DevOps в частном репозитории в облаке.
Репозиторий npm позволяет вам адаптировать пакеты, запускать пакеты, делиться исходным кодом, контролировать доступ к пакетам программного обеспечения и т. д.
Пакеты GitHub
GitHub — популярный инструмент разработки программного обеспечения для любого проекта DevOps. GitHub также предлагает вам услуги репозитория кода через Пакеты GitHub. Если вы уже работаете на платформе Github и вам нужен надежный репозиторий программного обеспечения, вы можете попробовать репозиторий GitHub.

Это позволяет безопасно использовать пакеты программного обеспечения в вашей организации или команде. Вы также можете легко сотрудничать с внешней командой разработчиков над пакетами GitHub.
Пакеты GitHub предлагают четыре простых плана подписки. Это Free, Pro, Team и Enterprise. Если вы начинающий разработчик программного обеспечения, вы можете попробовать платформу, используя бесплатную подписку.
Cloudsmith

Cloudsmith — еще один надежный инструмент для разработки, развертывания и распространения пакетов программного обеспечения. Таким образом, если вам нужен репозиторий npm, репозиторий Python или репозиторий Maven, вы можете воспользоваться этим инструментом.
Платформа очень эффективна для управления пакетами крупных предприятий, стартапов и предприятий. Вам не нужно использовать разные инструменты для разных приложений, поскольку он предлагает универсальную совместимость для всех пакетов программного обеспечения. Кроме того, он позволяет вам использовать возможности цифрового облака и высокотехнологичной защиты исходного кода.
Хеликс Артефакты

Хеликс Артефакты должен быть в вашем предпочтительном списке, если вы специально ищете частный репозиторий пакетов. Публичные или сторонние репозитории часто портят вашу сборку программного обеспечения, добавляя вредоносные артефакты, повреждая исходный код или перехватывая зашифрованные данные.
Таким образом, вы, возможно, ищете безопасное место, где ваши разработчики смогут создать и доставить идеальное приложение для ваших клиентов. Вы получаете полный контроль над тем, кто может получать доступ, развертывать, редактировать или использовать хранящиеся у вас артефакты.
Артефакт кода AWS

Если вы хотите получить профессионально управляемые услуги репозитория программного обеспечения, вы можете попробовать Артефакт кода AWS. С помощью этого инструмента вы можете хранить, совместно использовать и публиковать пакеты приложений.
Вы также можете настроить этот инструмент для получения пакетов и зависимостей из репозиториев с открытым исходным кодом и общедоступного кода. Таким образом, ваши разработчики программного обеспечения всегда имеют необходимый им исходный код.
Используете ли вы репозиторий Maven, репозиторий npm или репозиторий Python, AWS CodeArtifact поддерживает их все.
Мякоть
Вы можете управлять репозиториями пакетов программного обеспечения, используя Мякоть. Это позволяет вам безопасно и легко распространять свои приложения среди большого числа потребителей. Платформа также может полностью или частично отражать ваш репозиторий кода.

В качестве альтернативы вы можете использовать Pulp в качестве репозитория кода, и он функционирует как репозиторий Maven, репозиторий npm или репозиторий Python. Поскольку платформа поддерживает различные методологии разработки, вы можете управлять исходным кодом на основе различных языков программирования в одном надежном месте.
MyGet
MyGet также является популярным универсальным менеджером пакетов с надежной защитой. На этой платформе вы можете непрерывно и удобно отслеживать весь жизненный цикл программного пакета вашего проекта DevOps.

Поэтому всякий раз, когда вам нужен эффективный менеджер пакетов для репозитория npm, репозитория Maven, репозитория RubyGems, репозитория PHP или репозитория Python, вы можете проверить MyGet. Он предлагает отслеживание лицензий на программное обеспечение в режиме реального времени, поэтому ваша команда разработчиков использует только утвержденные пакеты.
ProGet

ProGet предлагает различные услуги репозитория, чтобы вы могли хранить все пакеты проектов DevOps на одном защищенном сервере. Если вы работаете с программным обеспечением в контейнерах, вы можете легко распространять компоненты и приложения, диаграммы Helm и образы Docker через универсальные пакеты.
Инструмент также позволяет вам совместно работать над библиотеками разработчиков. Ваша команда DevOps может обмениваться предварительно протестированными и готовыми кодами внутри компании или за ее пределами.
Гемфури
Вы можете использовать или устанавливать свои программные коды в любом месте, используя Гемфури. Предопределенный список менеджеров проектов DevOps или разработчиков может безопасно получать удаленный доступ к пакетам, поскольку это облачный репозиторий пакетов.

Облако репозиториев Gemfury подходит как для общедоступных, так и для частных проектов DevOps. Вы можете свести к минимуму стоимость разработки программного обеспечения, используя услуги репозитория этой платформы и сократив расходы на поддержку собственного репозитория исходного кода.
Вывод
Вы можете начать работу с проектами разработки программного обеспечения, выбрав любую из вышеупомянутых услуг размещения пакетов для приложений Linux, Windows или macOS.
Когда вы выбираете упомянутые выше эффективные и безопасные репозитории программного кода, вы повышаете общее качество и соответствие требованиям проекта разработки программного обеспечения.
Вы также можете ознакомиться с окончательным списком инструментов DevOps, чтобы узнать, какие популярные инструменты вам необходимо включить в свой стек технологий разработки программного обеспечения.
Всем привет! Сегодня я расскажу о том, что такое репозитории в Linux, для чего они нужны, какие виды репозиториев бывают, а также покажу, как работать с этими репозиториями, и какие инструменты для этого используются.

Чтобы понять, что такое репозитории в Linux и для чего они нужны, нужно немного разобраться в архитектуре самой операционной системы Linux, в частности, как устанавливаются программы (пакеты).
Углубляться в дебри мы не будем, но саму концепцию рассмотрим.
На заметку! Новичкам рекомендую почитать мою книгу «Linux для обычных пользователей» – в ней я подробно рассказываю про основы операционной системы Linux и как пользоваться этой системой без командной строки
Давайте обо всем по порядку.
В Windows программы обычно распространяются в виде exe файлов или в каком-нибудь специально упакованном формате. В Linux программы распространяются в виде пакетов.
Пакет в Linux – это своего рода дистрибутив программы, набор необходимых файлов, которые необходимы для работы этой программы, упакованный в специальный формат.
Существуют два популярных формата пакетов:
Как устанавливаются программы в Linux?
Все программы, а точнее пакеты, устанавливаются в систему с использованием централизованного метода, т.е. из единой точки, такой точкой может быть либо инструмент с графическим интерфейсом, часто его называют «Менеджер приложений», либо традиционный для Linux способ, утилиты командной строки (терминала).
Процесс установки программ с использованием такого подхода предполагает простой выбор программы, которую необходимо установить, и ее установка одним кликом, все остальное сделает менеджер приложений.
Ярким примером использования такой концепции представлен на всех смартфонах (ведь Android это Linux!), где для установки приложения Вы просто открываете менеджер программ (например, Play Маркет), находите нужную программу, и нажимаете установить и все!
Таким образом, в большинстве случаев для установки программ в Linux не требуется предварительно искать и скачивать с интернета дистрибутив программы, как например в Windows, достаточно запустить менеджер приложений, найти интересующее приложение и запустить установку.
Заметка! Рейтинг популярности дистрибутивов Linux для домашних компьютеров.
Что такое репозиторий в Linux?
Если нам не нужно самостоятельно скачивать дистрибутивы программ с интернета, то как тогда они попадают на компьютер?
И чтобы сразу внести ясность, на компьютерах пакеты программ не хранятся, менеджер скачивает их автоматически во время установки.
А откуда тогда менеджер скачивает все эти пакеты? А скачивает он их со специальных серверов в интернете (поэтому для установки программ в Linux требуется интернет), которые называются – репозиториями.
Репозитории – это сервера в интернете, на которых хранятся файлы пакетов приложений Linux и другая сопутствующая информация.
Практически у каждого дистрибутива Linux есть свой репозиторий, который содержит только совместимые и поддерживаемые конкретным дистрибутивом пакеты, соответственно, при установке приложений из официальных репозиториев Вы всегда устанавливаете только проверенные и стабильные версии программ.
Официальный репозиторий дистрибутива по умолчанию подключен, и когда Вы пытаетесь найти и установить программу, «Менеджер приложений» считывает информацию о доступных пакетах в репозитории и выдает ее Вам.

Таким образом, когда открываете менеджер приложений, он обращается к репозитоирию, узнает, какие пакеты есть, и выдает этот список Вам, а Вы, соответственно, выбираете и нажимаете кнопку установить, а все остальное делает менеджер.
Существуют, конечно, и нюансы при работе с таким подходом установки программ, например, что программа, которая Вас интересует, должна находиться в репозиториях конкретного дистрибутива Linux, который установлен на компьютере, в противном случае ее придётся искать в интернете, иными словами, делать ровно то же самое, что и в Windows. Однако популярные дистрибутивы Linux содержат в своих стандартных репозиториях тысячи программ на любой вкус, которые могут удовлетворить потребности даже продвинутого пользователя Linux, не говоря уж о начинающем.
Какие бывают репозитории в Linux?
Репозитории бывают как основные, т.е. официально поддерживаемые, так и дополнительные, которые можно подключить в случае возникновения необходимости (например, программы, которую Вы искали, нет в официальном репозитории).
Обычно у дистрибутива несколько официальных репозиториев, в каждом из которых хранятся пакеты, в зависимости от определенных свойств, так, например, в Ubuntu есть следующие типы официальных репозиториев:
Если программы, которую Вы искали, нет в официальном репозитории, то Вы можете подключить дополнительный, в котором есть нужная Вам программа.
Например, дополнительные репозитории в Ubuntu и основанных на нем дистрибутивах называются PPA-репозитории.
PPA (Personal Package Archive) – это персональный репозиторий разработчика конкретной программы, где он хранит пакеты своих программ, которые еще не включены в основной репозиторий дистрибутива.
Как работать с репозиториями в Linux?
Если репозиторий – это некий сервер в интернете, на котором хранятся программы, то, чтобы к нему обратиться за необходимой нам программой, мы должны знать адрес этого сервера. Один из самых удобных способов обращения к ресурсам в интернете – это использовать веб протоколы взаимодействия, таким образом, по факту адрес репозитория выглядит, как обычный URL-адрес сайта.
Для того чтобы система знала и помнила, куда обращаться за пакетами (программами), она хранит все адреса репозиториев в специальном файле sources.list, который расположен в каталоге в /etc/apt. И вся работа с репозиториями в Linux заключается в добавлении и удалении адресов репозиториев.
Таким образом, если обобщить весь этот процесс, то, когда мы пытаемся установить программу, система предварительно считывает список доступных пакетов во всех подключенных репозиториях. И если такая программа есть, система устанавливает ее, если нужного пакета нет, то, соответственно, не устанавливает. И нам в этом случае, если мы хотим установить программу, необходимо подключить нужный репозиторий, т.е. добавить адрес этого репозитория.
Работать с репозиториями в Linux можно несколькими способами, в частности новички могут использовать удобный графический интерфейс, а более продвинутые пользователи Linux обычно пользуются специальными командами в терминале Linux.
В любом случае весь процесс работы с репозиториями сводится к редактированию файла sources.list (а также созданию дополнительных подобных файлов), который, кстати, Вы можете отредактировать и обычными утилитами для работы с текстовыми файлами.
Обычно компонент с графическим интерфейсом для работы с репозиториями называется «Источники приложений», он доступен из основного меню операционной системы.
Например, в Linux Mint он выглядит следующим образом

Для управления репозиториями в терминале используется команда add-apt-repository, так, например, для добавления PPA-репозитория команда будет выглядеть следующим образом.
sudo add-apt-repository –y ppa:atareao/telegram
где, ppa:atareao/telegram – это PPA-репозиторий для установки программы Telegram.
На сегодня это все, надеюсь, материал был Вам полезен и интересен, удачи Вам, пока!
YUM (Yellowdog Updater Modified) is an open-source, widely used command-line and graphical-based package management tool for RPM (RedHat Package Manager) based Linux systems, including, but not limited to, Red Hat Enterprise Linux (RHEL), CentOS, Scientific Linux (SL), Oracle Linux (OL), Rocky Linux and AlmaLinux, which is used to install, update, remove or search software packages on a system.
Команда DNF (Dandified yum) — это версия нового поколения традиционного менеджера пакетов YUM для систем на базе RedHat.
Для установки программных пакетов, не входящих в базовые репозитории и репозитории обновлений по умолчанию, а также дополнительных репозиториев, вам необходимо установить и включить в вашей системе другие сторонние репозитории.
В этой статье мы рассмотрим 8 лучших репозиториев YUM/DNF для дистрибутивов на основе RHEL, которые часто рекомендуются сообществом Linux.
Предупреждение: всегда следует помнить, что перечисленные ниже репозитории не предоставляются и не поддерживаются RHEL; они могут быть или не быть актуальными или вести себя так, как вы ожидаете — используйте их на свой страх и риск.
Репозиторий EPEL
EPEL (Extra Packages for Enterprise Linux) — это бесплатный популярный проект репозитория с открытым исходным кодом, созданный сообществом и направленный на предоставление высококачественных пакетов, которые были разработаны, протестированы и улучшены в Fedora и доступны для RHEL. , CentOS, Scientific Linux и аналогичные дистрибутивы Linux. Большинство других репозиториев, перечисленных в этой статье, зависят от EPEL.
Репозиторий REMI
——— На RHEL 8 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# ням установить https://rpms.remirepo.net/enterprise/remi-release-8.rpm
——— На RHEL 7 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# ням установить https://rpms.remirepo.net/enterprise/remi-release-7.rpm
——— На RHEL 6 ———
# ням установить https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install https://rpms.remirepo.net/enterprise/remi-release-6.rpm
Репозиторий RPMFusion
RPMFusion — это сторонний репозиторий, который предлагает некоторое бесплатное и платное дополнительное программное обеспечение для дистрибутивов Fedora и Enterprise Linux, включая RHEL и CentOS. Вам необходимо включить репозиторий EPEL, прежде чем включать RPM Fusion.
——— На RHEL 8 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# yum localinstall —nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
# yum localinstall —nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
——— На RHEL 7 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum localinstall —nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
# yum localinstall —nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
——— На RHEL 6 ———
# ням установить https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum localinstall —nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm
# yum localinstall —nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm
Репозиторий ELRepo
ELRepo (Community Enterprise Linux Repository) — это RPM-репозиторий, предназначенный для предоставления пакетов, связанных с аппаратным обеспечением, таких как драйверы файловой системы, графические драйверы, сетевые драйверы, звуковые драйверы, веб-камера и видеодрайверы, для улучшения вашего опыта работы с Enterprise Linux.
——— На RHEL 8 ———
# rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# об/мин -Uvh https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
——— На RHEL 7 ———
# rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# об/мин -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
——— На RHEL 6 ———
# rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# об/мин -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
Репозиторий NUX-dextop
NUX-dextop — это RPM-репозиторий пакетов настольного и мультимедийного программного обеспечения для EL. Он содержит много графического программного обеспечения и программ на основе интерфейса командной строки (CLI), включая инструмент совместного использования удаленного рабочего стола Remmina, медиаплеер VLC и многие другие.
Вам также необходимо включить репозиторий EPEL перед включением nux-dextop.
——— На RHEL 8 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# yum установить http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
——— На RHEL 7 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum установить http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
——— На RHEL 6 ———
# ням установить https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
Хранилище GhettoForge
Проект GhettoForge направлен на предоставление пакетов для выпусков Enterprise Linux 6 и 7, которых нет ни в базовых наборах пакетов EL, ни в других сторонних репозиториях.
——— На RHEL 8 ———
# ням установить http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el8.noarch.rpm
——— На RHEL 7 ———
# ням установить http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
——— На RHEL 6 ———
# yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el6.noarch.rpm
Хранилище психотических ниндзя
Psychotic Ninja стремится предоставлять высококачественные пакеты, которых нет ни в базовых наборах пакетов EL, ни в других сторонних репозиториях, для выпусков 6 и 7 Enterprise Linux.
Чтобы включить репозиторий Psychotic Ninja, сначала вам нужно импортировать ключ GPG, а затем установить его.
# rpm —import http://wiki.psychotic.ninja/RPM-GPG-KEY-psychotic
# rpm -ivh http://packages.psychotic.ninja/6/base/i386/RPMS/psychotic-release-1.0.0-1.el6.psychotic.noarch.rpm
Обратите внимание, что этот унифицированный пакет психотических выпусков работает со всеми выпусками и архитектурами, включая 64-разрядную версию CentOS/RHEL 7.
Репозиторий сообщества IUS
Последним в списке является IUS (Inline with Upstream Stable) — новый сторонний репозиторий, поддерживаемый сообществом, который предоставляет высококачественные RPM-пакеты для последних исходных версий PHP, Python, MySQL и Red Hat. Корпоративный Linux (RHEL) и CentOS.
Как и многие рассмотренные нами репозитории, IUS также зависит от EPEL.
——— На RHEL 7 ———
# ням установить https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install https://repo.ius.io/ius-release-el7.rpm
Вот и все! В этой статье мы рассмотрели 8 лучших сторонних репозиториев YUM/DNF для Linux на базе RHEL, которые часто рекомендуются сообществом Linux. Если вы знаете какой-либо другой репозиторий, предоставляющий высококачественные пакеты программного обеспечения и заслуживающий включения сюда, сообщите нам об этом через форму комментариев ниже.

