Как посмотреть репозиторий в linux
Перейти к содержимому

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

  • автор:

Sysadminium

Из этой статьи вы узнаете что такое репозитории в Linux. Мы научимся их настраивать на примере Debian 11 и Ubuntu 22.04.

Оглавление скрыть

Что такое репозиторий

Репозиторий — это своеобразное хранилище приложений. У многих GNU/Linux дистрибутивов есть свои репозитории. А также разработчики какого-нибудь отдельного программного обеспечения могут создать свой репозиторий. Но в этом случае такой репозиторий нужно разделить на ветки, одна ветка будет подходить для одной Linux системы, а другая для другой.

В репозиториях, которые подходят для Debian и Ubuntu приложения хранятся в виде архивов. Такие архивы называются пакетами. Эти пакеты имеют особый формат — deb. Есть ещё другой, популярный, формат пакетов — rpm, но системы полагающиеся на такие пакеты я не рассматриваю.

Linux сервера и их репозитории

Репозитории могут быть доступны с использованием различных протоколов, но самым распространённым является http. Такие репозитории могут быть открыты с помощью обычного браузера. И от туда можно скачать необходимый пакет для установки. Но правильнее устанавливать пакеты в систему из репозиториев с помощью специальных утилит — пакетных менеджеров.

На этом уроке мы познакомимся с подключением системных и сторонних репозиториев. А пакетные менеджеры рассмотрим позже.

Конфиги со списком репозиториев

Пакетные менеджеры, которые умеют устанавливать пакеты из репозиториев, должны знать адреса репозиториев. И эти адреса записываются в конфиг — /etc/apt/sources.list. А также можно создавать дополнительные конфиги с расширением .list в каталоге /etc/apt/sources.list.d/. Всё это справедливо и для Debian и для Ubuntu.

Если помните, в процессе установки систем мы выбирали репозиторий:

  • для Debian — deb.debian.org;
  • для Ubuntu — ru.archive.ubuntu.com.

Давайте теперь посмотрим какие репозитории прописались на наших Linux системах (с помощью egrep -v ‘^#|^$’ я убрал комментарии, а с помощью cat -n добавил нумерацию строк):

alex@ubu:~$ egrep -v '^#|^$' /etc/apt/sources.list | cat -n 1 deb http://ru.archive.ubuntu.com/ubuntu jammy main restricted 2 deb http://ru.archive.ubuntu.com/ubuntu jammy-updates main restricted 3 deb http://ru.archive.ubuntu.com/ubuntu jammy universe 4 deb http://ru.archive.ubuntu.com/ubuntu jammy-updates universe 5 deb http://ru.archive.ubuntu.com/ubuntu jammy multiverse 6 deb http://ru.archive.ubuntu.com/ubuntu jammy-updates multiverse 7 deb http://ru.archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse 8 deb http://ru.archive.ubuntu.com/ubuntu jammy-security main restricted 9 deb http://ru.archive.ubuntu.com/ubuntu jammy-security universe 10 deb http://ru.archive.ubuntu.com/ubuntu jammy-security multiverse alex@deb:~$ egrep -v '^#|^$' /etc/apt/sources.list | cat -n 1 deb http://deb.debian.org/debian/ bullseye main 2 deb-src http://deb.debian.org/debian/ bullseye main 3 deb http://security.debian.org/debian-security bullseye-security main 4 deb-src http://security.debian.org/debian-security bullseye-security main 5 deb http://deb.debian.org/debian/ bullseye-updates main 6 deb-src http://deb.debian.org/debian/ bullseye-updates main

Разбираем конфиг

Этот файл состоит из строк, а строки состоят из следующих столбцов:

  • Тип пакетов:
    • deb — архив с уже откомпилированной и готовой к установке программой;
    • deb-src — архив с исходным кодом программы, который перед установкой нужно будет откомпилировать.
    • http://ru.archive.ubuntu.com/ubuntu — для Ubuntu;
    • http://deb.debian.org/debian/ — для Debian;
    • http://security.debian.org/debian-security — обновления безопасности для Debian.
    • для Ubuntu:
      • jammy — приложения для этой версии Ubuntu;
      • jammy-updates — рекомендуемые обновления;
      • jammy-backports — обновления из более новой системы. Допустим для Ubuntu 20.04 определённый пакет уже не обновляется, но из этой ветки можно попробовать его обновить (конечно есть вероятность повредить систему);
      • jammy-security — важные обновления безопасности, без которых ваш сервер легче будет взломать.
      • bullseye — приложения для этой версии Debian;
      • bullseye-updates — рекомендуемые обновления;
      • bullseye-security — важные обновления безопасности, без которых ваш сервер легче будет взломать.
      • Для Ubuntu:
        • main — здесь находятся пакеты, которые официально поддерживаются компанией Canonical;
        • restricted — содержит поддерживаемое ПО с закрытым исходным кодом, например MP3 или Flash;
        • universe — содержит ПО, которое поддерживается сообществом пользователей и разработчиков Ubuntu;
        • multiverse — содержит ПО, которое каким-либо образом ограничено либо условиями лицензии, либо юрисдикцией.
        • main — пакеты полностью соответствуют критериям DFSG. Эти пакеты считаются частью дистрибуции Debian;
        • contrib — пакеты тоже соответствуют критериям DFSG, но зависят от других пакетов, которые не соответствуют этим критериям;
        • non-free — содержит всё остальное ПО, которое не соответствует DFSG.

        Классы релизов в Debian

        Рассматривая выше ветки репозиториев Debian мы увидели следующее:

        Но, помимо кодовых имён версий системы, в названиях веток, можно использовать специальные классы релизов:

        • stable — ссылается на текущей стабильный репозиторий Debian, сейчас это bullseye. Как только выйдет новая версия Debian, то stable будет ссылаться на более новую версию;
        • oldstable — ссылается на предыдущий стабильный репозиторий;
        • testing — ссылается на специальную ветку репозитория для разработки нового стабильного релиза;
        • unstable — ссылается на самые свежие, но не протестированные пакеты;
        • experimental — здесь хранятся пакеты, которые только начали разрабатывать;
        • backports — ссылается на testing и unstable, но только для обновлений безопасности.

        То есть вы можете изменить свои репозитории на 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

        Каждый репозиторий, для каждой ветки содержит текстовый файл Release. Например, откройте в браузере репозиторий для Ubuntu: http://ru.archive.ubuntu.com/ubuntu/. Дальше откройте ветку (dists) для jammy. И здесь вы можете скачать и посмотреть файл Release.

        Файл 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 в репозитории, то можете заметить там строчку:

        Architectures: amd64 arm64 armhf i386 ppc64el riscv64 s390x

        Здесь прописаны архитектуры пакетов, которые хранятся в репозитории. Прописывая источник репозитория, например в конфиге /etc/apt/sources.list вы можете указать определённую архитектуру, чтобы предотвратить скачивание и установку пакетов для других архитектур.

        Это делается таким способом:

        ### Пример для Debian ### deb [arch=amd64] http://deb.debian.org/debian/ bullseye main

        Вариант использования официальных репозиториев

        Для того чтобы уменьшить вероятность поломки вашей системы из-за непроверенных обновлений, можно немного сократить количество репозиториев в системах Debian и в Ubuntu.

        Вообще в Debian дан список самых безопасных репозиториев по умолчанию. Можем лишь закомментировать репозитории с исходниками, так как скорее всего вам они пока не понадобятся. Напомню, что такие строки начинаются со слова deb-src. А если понадобятся вы их просто раскомментируете. После правки у нас осталось 3 источника пакетов:

        alex@deb:~$ egrep -v '^#|^$' /etc/apt/sources.list | cat -n 1 deb http://deb.debian.org/debian/ bullseye main 2 deb http://security.debian.org/debian-security bullseye-security main 3 deb http://deb.debian.org/debian/ bullseye-updates main

        Ubuntu при установке прописала намного больше своих репозиториев. Но их тоже можно свести к трем. Например, я считаю нужным отключить universe, multiverse и jammy-backports репозитории на сервере. После правки список репозиториев также состоит из 3-ёх строк:

        alex@ubu:~$ egrep -v '^#|^$' /etc/apt/sources.list | cat -n 1 deb http://ru.archive.ubuntu.com/ubuntu jammy main restricted 2 deb http://ru.archive.ubuntu.com/ubuntu jammy-updates main restricted 3 deb http://ru.archive.ubuntu.com/ubuntu jammy-security main restricted

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

        $ sudo apt update

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

        А если хотите обновить систему, то выполните команду:

        $ sudo apt upgrade

        Эта команда уже скачивает все обновления и устанавливает их.

        Кстати утилита apt — это и есть менеджер пакетов. Рассмотрим её и другие менеджеры пакетов в следующих статьях.

        Добавление сторонних репозиториев

        Источник репозитория

        Некоторые разработчики создают свои собственные репозитории. Например у веб сервера Nginx есть свой репозиторий для разных систем, в том числе для Debian и Ubuntu. Вот его адрес: https://nginx.org/packages/mainline/.

        Добавлять репозитории можно в основной конфиг: /etc/apt/sources.list или создавать отдельные конфиги в каталоге /etc/apt/sources.list.d/. Сам я считаю что правильнее для каждого стороннего репозитория создавать отдельные конфиги.

        Например, чтобы подключить репозиторий nginx создайте следующий конфиг. Для Debian:

        alex@deb:~$ sudo nano /etc/apt/sources.list.d/nginx.list deb http://nginx.org/packages/debian bullseye nginx

        Или для Ubutnu:

        alex@ubu:~$ sudo nano /etc/apt/sources.list.d/nginx.list deb http://nginx.org/packages/ubuntu jammy nginx

        Приоритет репозитория

        Допустим, мы прописали дополнительный репозиторий для nginx, но как системе понять из какого репозитория брать пакет для установки? Ведь пакеты для nginx есть и в системном репозитории и в репозитории от самого nginx. Чтобы ответить на этот вопрос придумали приоритеты репозиториев.

        Чтобы задать приоритет репозитория нужно создать файл /etc/apt/preferences.d/XX , где XX это номер файла, чем он выше, тем обработается позднее, то есть будет иметь приоритет над другими настройками.

        По нашему примеру для nginx нужно создать следующий файл:

        $ sudo nano /etc/apt/preferences.d/99nginx Package: * Pin: origin nginx.org Pin: release o=nginx Pin-Priority: 900
        • Package: имя пакета. Можно поставить знак * чтобы применить приоритет для всех пакетов из этого репозитория. Также можно указать несколько имён через пробел;
        • Pin: опции прикрепления. Существует много опций, я разберу лишь некоторые:
          • origin «имя автора или поставщика»;
          • release o=nginx — означает что в файле Release репозитория есть поставщик (Origin = o) с именем nginx;
          • release l=Debian — означает что в файле Release репозитория есть Label (l) с именем Debian;

          То-есть Package и Pin это условия для назначения приоритета, а Pin-Priority это действие (назначение приоритета). В нашем примере получается следующее: если имя пакета любое, но владелец репозитория nginx.org и в файле Release прописано «Origin: nginx«, то для таких пакетов ставим приоритет 900.

          Приоритет может быть в следующих диапазонах:

          • P >= 1000 — пакет будет установлен из этого репозитория, даже если это приведет к понижению версии уже установленного пакета;
          • 990 — пакет будет установлен из этого репозитория, если не установлена более новая версия;
          • 500 — пакет будет установлен, если нет пакета принадлежащего к целевому выпуску или не установлена более новая версия;
          • 100 — пакет будет установлен, если нет кандидатов из других репозиториев или установленного пакета более новой версии;
          • 0 < P < 100— пакет будет установлен, только если он ещё не установлен (любой версии) и если нет кандидатов из других репозиториев;
          • P < 0— пакет не будет установлен ни при каких условиях;
          • P = 0 — не используется.
          Целевой выпуск

          Приоритеты с 500 по 990 и с 990 по 1000 очень похожи. Чтобы их отличить нужно понять что такое целевой выпуск. Для Ubuntu или Debian это название версии дистрибутива. Например для Ubuntu — jammy, а для Debian — bullseye. Но это имя ещё нужно задать таким способом:

          alex@deb:~$ sudo nano /etc/apt/apt.conf.d/default APT::Default-Release "bullseye"; alex@ubu:~$ sudo nano /etc/apt/apt.conf.d/default APT::Default-Release "jammy";

          Открытый ключ репозитория

          И так, репозиторий мы добавили, приоритет настроили. Давайте попробуем применить изменения:

          alex@deb:~$ sudo apt update Пол:1 http://nginx.org/packages/debian bullseye InRelease [2 860 B] Ошб:1 http://nginx.org/packages/debian bullseye InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY ABF5BD827BD9BF62 Пол:2 http://security.debian.org/debian-security bullseye-security InRelease [44,1 kB] Сущ:3 http://deb.debian.org/debian bullseye InRelease Пол:4 http://deb.debian.org/debian bullseye-updates InRelease [39,4 kB] Чтение списков пакетов… Готово W: Ошибка GPG: http://nginx.org/packages/debian bullseye InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY ABF5BD827BD9BF62 E: Репозиторий «http://nginx.org/packages/debian bullseye InRelease» не подписан. N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён. N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8).

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

          Чтобы это сделать, вначале установим необходимые инструменты:

          ### Для Debian ### alex@deb:~$ sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring ### Для Ubuntu ### alex@ubu:~$ sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
          Внимание! Утилита 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

          Дальше выполняется конвейер команд, это когда вывод одной команды идет на вход другой команде. Такие конвейеры мы будем проходить позже. Но всё равно постараюсь объяснить следующую команду. С помощью cat мы читаем файл ключа, и прочитанное передаём утилите gpg. Утилита gpg переводит прочитанное в необходимый формат и передаёт вывод уже следующей команде tee. Утилита tee (под sudo) сохраняет полученный текст в файл. В конце добавляем >/dev/null, чтобы не было никакого вывода на терминал. Вот сама команда:

          $ cat nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

          Вот так мы получили открытый ключ, который теперь хранится в файле /usr/share/keyrings/nginx-archive-keyring.gpg.

          Или можно сразу в одной команде скачать файл (с помощью wget или curl) и сохранить ключ в формате gpg:

          ### Пример для wget ### $ wget -O- https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null ### Пример для curl ### $ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

          После этого необходимо указать в конфиге репозитория, что нужно использовать этот ключ. Для этого в конфиге репозитория между deb и адресом репозитория вставляем [signed-by=/путь/к/ключу]:

          alex@deb:~$ sudo nano /etc/apt/sources.list.d/nginx.list deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian bullseye nginx

          И пробуем ещё раз применить изменения:

          alex@deb:~$ sudo apt update Сущ:1 http://security.debian.org/debian-security bullseye-security InRelease Сущ:2 http://deb.debian.org/debian bullseye InRelease Сущ:3 http://deb.debian.org/debian bullseye-updates InRelease Пол:4 http://nginx.org/packages/debian bullseye InRelease [2 860 B] Пол:5 http://nginx.org/packages/debian bullseye/nginx amd64 Packages [7 633 B] Получено 7 633 B за 1с (9 420 B/s) Чтение списков пакетов… Готово Построение дерева зависимостей… Готово Чтение информации о состоянии… Готово Все пакеты имеют последние версии.

          На этот раз всё прошло успешно.

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

          ### Пример ### deb [arch=amd64 signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian bullseye nginx

          Проверка добавленного репозитория

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

          alex@deb:~$ apt-cache policy nginx nginx: Установлен: (отсутствует) Кандидат: 1.20.2-1~bullseye Таблица версий: 1.20.2-1~bullseye 990 990 http://nginx.org/packages/debian bullseye/nginx amd64 Packages 1.20.1-1~bullseye 990 990 http://nginx.org/packages/debian bullseye/nginx amd64 Packages 1.18.0-6.1 990 990 http://deb.debian.org/debian bullseye/main amd64 Packages

          Из вывода становится ясно что пакет nginx ещё не установлен в систему, а кандидатом на установку является пакет с версией 1.20.2 из репозитория http://nginx.org/packages/debian. Приоритет у всех пакетов, кстати стал равным = 990. Это произошло после того, как мы установили целевой выпуск = bullseye. Так как все репозитории относятся к этому выпуску, то на назначенный мною приоритет система перестала смотреть, а назначила репозиториям для bullseye такой приоритет.

          Итог

          Мы узнали что такое репозитории. Узнали что есть официальные репозитории для системы и они прописываются в конфиг /etc/apt/sources.list. А также есть сторонние репозитории и для них лучше создавать свои конфиги в каталоге /etc/apt/sources.list.d/.

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

          • Очень хорошо про приоритеты и повышение или понижение версий пакетов написано здесь.
          • Инструкция для подключения nginx репозитория в различные системы.
          • Существует Репозиторий от Yandex — он хранит ветки для большинства систем Linux.
          • Репозиторий Ubuntu
          • Репозиторий Debian

          Репозитории

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

          Введение

          Если Вы в прошлом пользовались операционными системами Windows или Mac OS , Вы скорее всего привыкли к тому, что программное обеспечение поставляется в виде одного или нескольких установочных файлов, распространяемых на CD/DVD или через интернет. Для Ubuntu GNU/Linux также существует подобный способ распространения ПО, однако, это в большинстве своем проприетарные и закрытые программы.

          Большая часть ПО в Ubuntu запакована в специальные .deb файлы, в которых содержатся программы и необходимые библиотеки. Эти файлы Вы можете найти в интернете, на CD/DVD (например установочный СD Ubuntu содержит много .deb файлов).

          Репозитории – это специальные сервера-хранилища таких файлов. Их также можно назвать «Источниками приложений». Пользовательские компьютеры подключаются к репозиториям по сети или через интернет и при помощи специальных утилит (таких как Synaptic) позволяют Вам увидеть, какие пакеты у Вас установлены, какие доступны для установки. Большинство утилит поддерживают простой поиск по ключевым словам и способны разбивать группы пакетов по категориям.

          Использование связки репозиторий-утилита позволяет использовать простой, централизованный метод установки/удаления программ, а также предоставляет удобный способ выкладывания обновлений.

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

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

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

          При помощи интернет-поисковика (например Google) Вы можете найти различные варианты желаемой программы. Например набрав «[название программы в Windows] для Ubuntu».

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

          Определившись с программой, просто запустите Центр приложений Ubuntu и поищите ее по названию. Скорее всего вы сможете её найти и установить.

          Так же возможно что разработчики поддерживают свой репозиторий с пакетами для вашей версии Ubuntu на launchpad.net или на своём сайте, обычно в подобных репозиториях содержатся более свежие версии программ, поэтому если вы хотите получить самую последнюю версию — внимательно посмотрите на сайт программы и воспользуйтесь поиском по launchpad.net

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

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

          Репозитории Ubuntu

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

          Пакеты распределяются по компонентам таким образом:

          Main – свободное ПО, официально поддерживаемое компанией Canonical.

          Restricted – проприетарное ПО (в основном — драйверы устройств), официально поддерживаемое компанией Canonical.

          Universe – свободное ПО, официально не поддерживаемое компанией Canonical (но поддерживаемое сообществом пользователей).

          Multiverse – проприетарное ПО, не поддерживаемое компанией Canonical.

          Существует четыре основных репозитория Ubuntu.

          $release 1) – это пакеты на момент выхода релиза.
          $release-security – пакеты критических обновлений безопасности.

          $release-updates – пакеты обновления системы (т.е. более поздние версии ПО, вышедшие уже после релиза).

          $release-backports – бэкпорты более новых версий некоторого ПО, которое доступно только в нестабильных версиях Ubuntu.

          partner – репозиторий содержищий ПО компаний-партнеров Canonical.

          Кроме официальных, существует множество репозиториев от авторов программ и от тех, кто не поленился собрать из исходников пакет и поделиться им с другими. Launchpad предлагает создавать PPA-репозитории — Personal Package Archive, обычно небольшой репозиторий, в который его хозяин складывает исходники, а пользователи на выходе получают уже готовый deb-пакет.

          Подключение репозитория

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

          Некоторые репозитории помимо нужных Вам пакетов могут содержать экспериментальные сборки различного системного ПО, в том числе и ядер linux. Т.к. версия этих экспериментальных пакетов как правило выше, чем установленная у Вас, Менеджер обновлений может попытаться «обновить» систему с этих репозиториев, что в свою очередь может повредить Вашу систему. Поэтому внимательно читайте описание подключаемого репозитория и информацию в Менеджере обновлений.

          При помощи графического интерфейса

          Для подключения репозитория выполните следующие шаги.

          Откройте Центр приложений Ubuntu.
          Откройте пункт меню Правка→Источники приложений…

          В появившемся окне выберите вкладку «Другое ПО», нажмите кнопку «Добавить».

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

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

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

          При помощи консоли (рекомендуемый способ)

          Начиная с Ubuntu 10.04 добавлять репозиторий можно одной командой, вот пример для ppa-репозитория:

          sudo apt-add-repository ppa:ripps818/coreavc

          При помощи консоли

          Системный список репозиториев содержится в файле /etc/apt/sources.list . Для того, чтобы добавить репозиторий — отредактируйте этот файл, например так:

          sudo nano /etc/apt/sources.list

          и добавьте туда APT строку. Чем «выше» (т.е. ближе к началу файла) стоит строка, тем больший приоритет получит добавленный репозиторий. Должно получиться примерно так:

          deb http://my.cool.repo.ubu/ubuntu jaunty main # deb cdrom:[Ubuntu 9.04 _Jaunty Jackalope_ - Release i386 (20090420.1)]/ jaunt$ # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://ru.archive.ubuntu.com/ubuntu/ jaunty main restricted deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://ru.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://ru.archive.ubuntu.com/ubuntu/ jaunty universe deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty universe deb http://ru.archive.ubuntu.com/ubuntu/ jaunty-updates universe deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://ru.archive.ubuntu.com/ubuntu/ jaunty multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://ru.archive.ubuntu.com/ubuntu/ jaunty-backports main restricted uni$ # deb-src http://ru.archive.ubuntu.com/ubuntu/ jaunty-backports main restricted$ ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu jaunty partner # deb-src http://archive.canonical.com/ubuntu jaunty partner deb http://security.ubuntu.com/ubuntu jaunty-security main restricted deb-src http://security.ubuntu.com/ubuntu jaunty-security main restricted deb http://security.ubuntu.com/ubuntu jaunty-security universe deb-src http://security.ubuntu.com/ubuntu jaunty-security universe deb http://security.ubuntu.com/ubuntu jaunty-security multiverse deb-src http://security.ubuntu.com/ubuntu jaunty-security multiverse deb http://archive.ubuntu.com/ubuntu/ jaunty main

          где первой строкой идет добавляемый нами репозиторий.
          Сохраните файл и закройте редактор. Для nano нужно нажать Ctrl + X , подтвердить сохранение изменений — Y и убедившись, что имя сохраняемого файла /etc/apt/sources.list нажать Enter .

          Далее следует обновить список пакетов. Для этого выполните:

          sudo apt-get update

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

          W: Ошибка: http://site.com jaunty Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 1234567890ADBD

          Кроме того, при установке пакетов вам будут сообщать о том, что они являются ненадёжными. О подписывании репозиториев см. раздел Защита репозиториев .

          Устройство репозитория

          Пакет (например *.deb файл) размещается на общедоступном интернет-ресурсе (например archive.ubuntu.com). Затем информация о пакете заносится в файл Packages, который, в свою очередь, для удобства работы пакуется в Packages.gz

          Пример записи в файле Packages для пакета abiword :

          Package: abiword Priority: optional Section: gnome Installed-Size: 7808 Maintainer: Ubuntu Core Developers Original-Maintainer: Masayuki Hatta (mhatta) Architecture: i386 Version: 2.6.6-0ubuntu1 Replaces: abiword-gnome Provides: abiword-gnome Depends: libaiksaurus-1.2-0c2a (>= 1.2.1+dev-0.12), libaiksaurusgtk-1.2-0c2a (>= 1.2.1+dev-0.12), libart-2.0-2 (>= 2.3.18), libatk1.0-0 (>= 1.20.0), libc6 (>= 2.7), libcairo2 (>= 1.2.4), libenchant1c2a (>= 1.4.2), libexpat1 (>= 1.95.8), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libfribidi0 (>= 0.10.9), libgcc1 (>= 1:4.1.1), libglade2-0 (>= 1:2.6.1), libglib2.0-0 (>= 2.18.0), libgnomecanvas2-0 (>= 2.11.1), libgnomeprint2.2-0 (>= 2.17.0), libgnomeprintui2.2-0 (>= 2.17.0), libgsf-1-114 (>= 1.14.11), libgtk2.0-0 (>= 2.15.0), libice6 (>= 1:1.0.0), libidn11 (>= 0.5.18), libjpeg62, libloudmouth1-0 (>= 1.1.4-2), libncurses5 (>= 5.6+20071006-3), libots0, libpango1.0-0 (>= 1.22.0), libpng12-0 (>= 1.2.13-4), libpopt0 (>= 1.14), libreadline5 (>= 5.2), librsvg2-2 (>= 2.22.3), libsm6, libstdc++6 (>= 4.2.1), libwmf0.2-7 (>= 0.2.8.4), libwpd8c2a, libwpg-0.1-1, libwv-1.2-3 (>= 1.2.4), libx11-6, libxft2 (>> 2.1.1), libxml2 (>= 2.6.27), zlib1g (>= 1:1.1.4), abiword-common (>= 2.6.6-0ubuntu1), gsfonts Recommends: abiword-plugin-grammar, abiword-plugin-mathview, abiword-help, aspell-en | aspell-dictionary, poppler-utils Suggests: abiword-plugin-goffice Conflicts: abiword-gnome Filename: pool/main/a/abiword/abiword_2.6.6-0ubuntu1_i386.deb Size: 2969028 MD5sum: f70817557ecbf4183b498fd98051ec03 SHA1: 8c666220527fe78328b5f94fec93fd62eddd332f SHA256: 47de1dcf28866a33c0e4baefadb2d29ff9046ba4e4ae6e600801e5e3a6ec40c7 Description: efficient, featureful word processor with collaboration AbiWord is a full-featured, efficient word processing application. It is suitable for a wide variety of word processing tasks, and is extensible with a variety of plugins. . This package includes many of the available import/export plugins allowing AbiWord to interact with ODT, WordPerfect, and other formats. It also includes tools plugins, offering live collaboration with AbiWord users on Linux and Windows (using TCP or Jabber/XMPP), web translation and dictionary support, and more. . Additional plugins that require significant amounts of extra software to function are in the various abiword-plugin-* packages. Homepage: http://www.abisource.com/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Task: xubuntu-desktop

          Файлов Packages.gz может быть несколько (например, по одному для каждой архитектуры). Файл Release содержит описание репозитория в целом и ссылки на различные Packages.gz

          Общая же схема работы выглядит примерно так:

          Пользовательский компьютер подключается к репозиторию, и при наличии защиты, проверяет его истинность (см. главу Защита репозиториев ).

          Читает файл Release, находит и скачивает необходимые Packages.gz
          На основе скачанных Packages.gz обновляет локальную базу данных пакетов.

          Теперь пользовательский компьютер «знает» где находится тот или иной пакет и при необходимости легко может его скачать и установить.

          Защита репозиториев

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

          В Ubuntu по умолчанию доверенными являются репозитории на установочных дисках и основные интернет репозитории — archive.ubuntu.com. При наличие на пользовательском компьютере нескольких подключенных репозиториев, предпочтение отдается доверенным.

          При подключении репозитория, защищенного цифровой подписью Вам нужно скачать (обычно с ресурса, рассказывающего про этот репозиторий, или с сервера ключей, что является более предпочтительным в любом случае) открытый ключ и добавить его в систему. Иногда для скачивания предоставляется доступный для установки пакет, который в свою очередь при своей установке сам прописывает ключ репозитория. Если вы скачиваете ключ с сайта репозитория, то вы получите обычный файл с расширением .key, .gpg или другим. Добавить его в систему можно так:

          sudo apt-key add repo.key

          Где repo.key — полученный вами ключ репозитория.

          Или при помощи графического интерфейса — запустите «Источники приложений» (Система→Администрирование→Источники приложений), перейдите на вкладку «Аутентификация» и нажмите на кнопку «Импортировать файл ключа…» — откроется диалог выбора файла. Выберите файл ключа и нажмите ОК.

          Добавление ключа

          Однако гораздо более предпочтительным является добавление ключа со специального защищённого сервера. Обычно, когда заходит речь о ключе, даётся его непонятный с первого взгляда буквенно-цифровой идентификатор вида 123ABCDEFG456 (строчка из произвольных цифр и букв латинского алфавита в верхнем регистре). Это — уникальное имя (идентификатор) ключа. Иногда ключ описывается строчкой вида 1024R/123ABCD, тогда идентификатором является часть после слеша. Так вот, ключи преимущественно хранятся на специальных серверах, откуда любой может их получить. Ключи для репозиториев Ubuntu принято хранить на keyserver.ubuntu.com. Для получения и импортирования в систему ключа с сервера необходимо выполнить команду:

          sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0x12345678

          Где вместо keyserver.ubuntu.com можно подставить адрес другого сервера ключей, а вместо 12345678 необходимо написать идентификатор нужного вам ключа.

          Совет: для того, чтобы разом попытаться импортировать все недостающие ключи репозиториев, выполните в консоли:

          sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo aptitude update 2>&1 | grep -o '[0-9A-Z]\$' | xargs`

          �� Как вывести список установленных репозиториев в Ubuntu и Debian

          Репозиторий – это набор пакетов для операционной системы Linux.

          Оттуда вы можете устанавливать, обновлять пакеты.

          Ubuntu и другие системы на основе Debian используют APT (Advanced Packages Tool) в качестве диспетчера пакетов.

          Apt хранит все файлы конфигурации в каталоге /etc/apt.

          Это руководство поможет вам составить список всех установленных репозиториев в системе на основе Ubuntu или Debian через командную строку.

          Список установленных репозиториев в Ubuntu

          Ссылки на удаленные репозитории настраиваются в файле /etc/apt/sources.list и во всех файлах в каталоге /etc/apt/sources.list.d/.

          Используйте следующую команду, чтобы вывести список всех настроенных репозиториев в системе на основе apt:

          sudo grep -rhE ^deb /etc/apt/sources.list* 

          Вы увидите результат, как показано ниже:

          deb http://mirrors.digitalocean.com/ubuntu/ xenial main restricted deb-src http://mirrors.digitalocean.com/ubuntu/ xenial main restricted deb http://mirrors.digitalocean.com/ubuntu/ xenial-updates main restricted deb-src http://mirrors.digitalocean.com/ubuntu/ xenial-updates main restricted deb http://mirrors.digitalocean.com/ubuntu/ xenial universe deb-src http://mirrors.digitalocean.com/ubuntu/ xenial universe . . . deb http://security.ubuntu.com/ubuntu xenial-security universe deb-src http://security.ubuntu.com/ubuntu xenial-security universe deb http://security.ubuntu.com/ubuntu xenial-security multiverse deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

          Кроме того, вы можете использовать команду apt-cache для вывода списка всех репозиториев.

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

          Давайте попробуем следующую команду:

          sudo apt-cache policy 
          Package files: 100 /var/lib/dpkg/status release a=now 500 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 Packages release v=16.04,o=LP-PPA-ondrej-php,a=xenial,n=xenial,l=***** The main PPA for supported PHP versions with many PECL extensions *****,c=main,b=amd64 origin ppa.launchpad.net 500 https://deb.nodesource.com/node_13.x xenial/main amd64 Packages release o=Node Source,n=xenial,l=Node Source,c=main,b=amd64 origin deb.nodesource.com . . . 500 http://mirrors.digitalocean.com/ubuntu xenial/main amd64 Packages release v=16.04,o=Ubuntu,a=xenial,n=xenial,l=Ubuntu,c=main,b=amd64 origin mirrors.digitalocean.com Pinned packages:

          Заключение

          В этом руководстве вы научились находить все репозитории, настроенные в системе на основе Ubuntu или Debian.

          apt Список репозиториев. Команда терминала (консоли)

          vedro-compota's picture

          Сразу скажем, что какой-то удобной команды на момент написания этой заметки не было, но тем не менее относительно удобные способы, конечно же есть.

          Где лежат сведения о репозиториях

          Где перечислены используемые репозитории:

          /etc/apt/sources.list
          /etc/apt/sources.list.d/

          Вывод списка репозиториев apt

          Поискать по этим двум источникам можно или так:

          grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/*

          Или, убрав все закомментированные и пустые строки, так:

          egrep -v '^#|^ *$' /etc/apt/sources.list /etc/apt/sources.list.d/*

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *