Репозиторий не подписан debian

Обновлено: 03.07.2024

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

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

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

Пакеты можно установить на Linux одним из двух способов: через инструменты с графическим интерфейсом ( менеджеры файлов ) или через командную строку ( терминал ). Подключение репозиториев в Debian происходит через терминал. С его помощью вы вводите команду — обращаетесь к репозиторию, и программа устанавливается.

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

Т ипы официальных репозиториев в Debian

Существует официальный список репозиториев Дебиан. Расскажем про каждый из них подробнее.


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

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

Sid ― это репозиторий с самым свежим программным обеспечением. Если в репозитории Testing ошибок может совсем не быть, так как до этого программа уже прошла большой путь проверок, то здесь ПО только начало свой путь. Использовать программы из этого репозитория не рекомендуется. Также Unstable может нарушить зависимости пакетов, так что потом вернуться на Stable будет трудно.

Oldstable — кодовое имя предыдущего Stable репозитория. При публикации новой версии Stable, предыдущая переходит в ветку Oldstable. Для этого репозитория ещё продолжают выпускаться обновления безопасности.

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

Backports ― компромисс между Stable-веткой и набором программ Testing. Он содержит преимущественно пакеты из Testing и немного из Unstable. Пакеты из Backports, где это возможно, устанавливаются без новых библиотек. Это сделано для того, чтобы при необходимости можно было вернуться на Stable. Если вам нужно ПО из веток Testing и Unstable, то лучше использовать этот репозиторий.

В Debian каждый репозиторий состоит из нескольких веток (разделов):

  • main ― эта ветка включается в каждый дистрибутив. Она подчиняется принципам свободного программного обеспечения. Ветка не зависит от других пакетов, которые не входят в раздел «main»;
  • contrib ― эта ветка подчиняется принципам свободного программного обеспечения и зависит только от пакетов, которые не входят в раздел «main». Может понадобиться прошивка ROM или ПО, которое имеет собственника, например Java от Oracle;
  • non-free ― содержит пакеты, которые противоречат принципам свободного программного обеспечения или имеют патенты и другие юридические ограничения.

Пакеты в каждой из веток (main, contrib и non-free) полностью готовы к работе с дистрибутивом Debian. Также для добавления репозитория вам понадобятся названия псевдонимов версий Debian.

П севдонимы версий Debian

Все версии (релизы) Debian имеют псевдонимы. Каждая версия названа в честь одного из героев мультфильма «История игрушек»:

  • Debian 7 ― Wheezy,
  • Debian 8 ― Jessie,
  • Debian 9 ― Stretch,
  • Debian 10 ― Buster,
  • Debian 11 ― Bullseye.

Знание релизов понадобится при добавлении репозитория.

К ак добавить официальный репозиторий в Debian

Операционная система хранит адреса всех репозиториев в специальном файле sources.list , который расположен в каталоге /etc/apt . Чтобы подключить репозиторий, нужно добавить в sources.list адрес web-сервера репозитория.

Как подключить репозиторий Debian:

1. Откройте терминал сочетанием клавиш Ctrl+Alt+T .

2. Отредактируйте файл /etc/apt/sources.list . Введите в терминал:

sudo nano /etc/apt/sources.list


3. В конец файла вставьте команду с адресом репозитория:


  • deb ― указывает на то, что это пакет Debian;
  • ссылка на репозиторий пакетов Debian (выглядит, как обычный URL-адрес сайта). На сайте Debian есть ссылки на зеркала , а также список сгруппированных пакетов , по категориям Stable, Testing, Unstable;
  • название версии Debian ― кодовое имя дистрибутива, псевдоним (например, Buster ― Debian 10, Stretch ― Debian 9, Jessie ― Debian 8, и т.д);
  • main ― компонент, который указывает на полностью свободное программное обеспечение. Также можно указать компоненты contrib и non-free.

Пример. Чтобы скачать программу MariaDB для Debian 10, надо ввести:

4. Сохраните и закройте файл сочетанием клавиш Ctrl+O и Ctrl+X

5. Обновите пакеты:

sudo apt-get update

Готово, установка репозиториев в Debian прошла успешно.

К ак удалить репозиторий в Debian

Удаление репозиториев в Debian можно провести двумя способами.

Способ 1. Удаление строки

1. Откройте терминал сочетанием клавиш Ctrl+Alt+T .

2. Откройте файл /etc/apt/sources.list . Введите в терминал:

sudo nano /etc/apt/sources.list

3. Найдите запись с репозиторием и удалите её:


Способ 2. Комментирование строки

1. Откройте терминал сочетанием клавиш Ctrl+Alt+T .

2. Откройте файл /etc/apt/sources.list . Введите в терминал:

sudo nano /etc/apt/sources.list

репозиторий

Как подключить репозиторий

В операционной системе Debian, а также ее подобных, репозитории прописываются в файл /etc/apt/sources.list, и например в Ubuntu-подобных системах, это все делается с помощью команды

А вот в Debian, все нужно делать вручную, например

Открываем терминал сочетанием клавиш Ctrl+Alt+T, и редактируем файл /etc/apt/sources.list

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

Например, давайте установим самую последнюю версию Wine в Debian. Для этого в конец файла добавьте следующую строку

Включаем возможность установки 32bit архитектур

Обновляем список пакетов, и устанавливаем последнюю версию wine

После установки, проверяем версию Wine


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

Открываем терминал, и вводим команду

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

Но как добавить репозитории из Launchpad в Debian?

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

У меня есть подопытный кролик, под названием Deepin 15.4.1 который основан на Debian, и уже на нем я буду проводить свои эксперименты.

Я установил инструменты для добавления репозитория, и сейчас попробую установить Google Drive в Deepin(При помощи этой статьи).

Открываем терминал и вводим

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

И открываем детальную информацию об этом PPA (Technical details about this PPA)

ppa

Обновляем список пакетов и устанавливаем google drive ocamlfuse

Пробуем отрывать в файловом менеджере




Как видим в Deepin проблем не возникло.

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

Всем удачного дня.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Это основной способ зеркалирования, помимо официального ftpsync, т.к. он гораздо надёжней debmirror.

Создаём каталог /mnt/repo/debian и дополнительные mirror,var,skel. В нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем.

Настройка apt-mirror

  • Зеркало с готовыми к установке (бинарными) пакетами для amd64 jessie (stable)+ исходные тексты
  • Зеркало с готовыми к установке (бинарными) обновлениями безопасности amd64 jessie (stable)+ исходные тексты
  • Зеркало с готовыми к установке (бинарными) прочими обновлениями amd64 jessie (stable)+ исходные тексты
  • Зеркало Backports, с готовыми к установке (бинарными) пакетами для amd64 jessie (stable)+ исходные тексты
  • Зеркало необходимое для сетевой установки (udebs).

Примечание: Раскомментирование строк лишь заменяет настройки по умолчанию.

Редактируем конфигурационный файл /etc/apt/mirror.list:

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

Далее нужно убедиться что все указанные в файле mirror.list каталоги существуют.

Запуск и автоматизация apt-mirror

Для ручного запуска создания/обновления зеркала выполняем команду:

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

Остаётся только дождаться завершения скачивания.

Для автоматической синхронизации и очистки зеркал нужно добавить строку в настройки cron и выставить подходящее время. Обновление официальных зеркал происходит каждые 6 часов: 3:00,9:00,15:00,21:00. Например так:

Настройка доступа к зеркалу

После завершения работы локальные копии всех указанных репозиториев окажутся в каталогах /mnt/repo/debian/mirror/имя_репозитория. Таким образом копия репозитория, которая была определена в файле mirror.list как:

Доступ именно к этому каталогу можно открывать любым удобным для Вас способом - Web или FTP сервером. Для корректной работы обязательно необходимо добавить символические ссылки "stable","testing", "unstable" на те выпуски, которые вы зеркалируете (если они у вас есть).

Далее очень желательно подписать вновь созданный репозиторий.

C помощью утилиты debmirror

Создание каталога /mnt/repo/debian, в нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем.

Опции

По умолчанию debmirror создаёт зеркало из секций main, contrib, non-free, main/debian-installer.

Можно исключать секции ненужных вам пакетов:

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

Принадлежность к определенной секции вашего пакета можно узнать по команде:

Пример получения бинарного зеркала (без пакетов с исходным кодом) Debian Stable для amd64:

C помощью утилиты reprepro

Создание каталога /mnt/repo/debian, в нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем.

Cоздание каталога /mnt/repo/debian/conf и пустого конфигурационного файла distributions:

В файл /mnt/repo/debian/conf/distributions указываем следующие параметры (пример для testing, архитектура i386):

Описание параметров

Дополнительные важные опции:

Инициализация репозитория

Создаём каталоги, файлы, ссылки:

Базовый каталог не задан, т.к. мы уже в нём находимся.

Теперь можно добавлять пакеты в локальный репозиторий из кэша уже скачанных вами пакетов:

Параметр -b задаёт базовый каталог репозитория, в нашем случае это /mnt/repo, если вы находитесь уже в нём, то его можно не задавать, т.к. reprepro ищет файл conf/distributions в текущем каталоге.

Добавление Дебиановских исходников в репозиторий. Они состоят обычно из 2-3 файлов, главным (управляющим) из которых является dsc-файл. Чтобы все файлы исходников добавились в репозиторий, нужно использовать includedsc, остальное аналогично.

Параметр --ask-passphrase подпишет ваш репозиторий с помощью вашего ключа GnuPG. Его можно не указывать, если не планируете подписывать репозиторий ключём gnupg. На не подписанные репозитории, aptitude будет выдавать предупреждение, что он ненадежный. Для использования подписанного репозитория, надо сделать выгрузку вашего ключа, а на машине использующей репозиторий:

Добавление пакетов расположенных на CD/DVD Debian

Они уже лежат в иерархии каталога pool на дисках, но reprepro не поддерживает рекурсивный поиск по подкаталогам, но это достаточно легко обойти шаблоном (pool/*/*/*/*.deb). Пример:

Она найдёт и добавит всё пакеты.

Удаление deb-пакета из репозитория

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

Использование

Для использования репозитория нужно добавить его в файл /etc/apt/sources.list в виде следующей строки (в общем виде):

Генерирование ключа

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

Ответ на вопрос о типе ключа (обычно - 1):

Ответ на вопрос о длине ключа (тоже по умолчанию - 2048):

Ответ на вопрос о сроке истечения ключа (0 - никогда не истекает):

После этого может потребоваться подтвердить выбор:

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

Экспорт ключа

Где mylocalkey.asc это имя файла, в который внесен данный экспорт (новый файл, он создатся в процессе).

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

Команда выполняется из того же каталога, что и предыдущая (из того, где находится mylocalkey.asc):

После этого можно проверить наличие ключа в списке apt:

Выведет все ключи, в том числе и созданный.

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

В этом случае ID_ключа будет 5A81CBE3 (см.выше).

Подписывание локального репозитория созданным ключом

Сначала нужно убедиться в том, что в локальном репозитории имеется файл Release (находится в каталоге /mnt/repo/debian/dists/ветка_дистрибутива). В этом файле хранится информация о репозитории.

Экспериментальные репозитории, установочные образы и наборы программ (experimental/addons).

Установочные образы и наборы программы из данной папки НЕ ПОЛУЧАЮТ техническую поддержку.

  • В данных репозиториях размещены архивные версии репозиториев, для которых уже не будут выпускаться обновления безопасности (версии Astra Linux Common Edition очередное обновление 1.11 и снимки репозиториев Astra Linux Common Edition 2.12);
  • Установочные образы и наборы программы из данной папки техническую поддержку в соотвествии с действующими лицензиями договорами.

Сохранён для совместимости с более ранними версиями структуры папок. К использованию не рекомендуется. Cовпадает с репозиторием stable.

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

  • При возможности установки пакетов пакет_1.1.1-100 и пакет_1.1.2-1 (отличие в последней цифре номера мажорной версии) будет установлен пакет_1.1.2, как имеющий старшую мажорную весрсию;
  • При возможности установки пакетов пакет_1.1.1-1 и пакет_1.1.1-100 (мажорные версии совпадают, отличия в минорных версиях) будет установлен первый найденный в репозиториях вариант пакета.

Приоритеты выбора репозиториев задаются в каталоге /etc/apt/preferences.d/ или в файле /etc/apt/preferences (устаревший способ).
Подробности см. по ссылке

Если приоритеты выбора репозитория не заданы явно, то

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

Проверить приоритеты репозиториев для конкретного пакета можно командой:

apt-cache policy имя_пакета

Подключение репозиториев на DVD дисках

вставить загрузочный диск в привод и выполнить команду:

sudo apt-cdrom add
sudo apt update

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

sudo apt-cdrom add
sudo apt update

Подключение образов ОС скопированных на локальный жесткий диск

создать копию DVD диска на локальном жестком диске можно выполнив команду:

sudo dd if=/dev/cdrom of=/opt/cd.iso bs=1M

или просто скопировав содержимое диска в выбранную папку.

Смонтировать iso файл в выбранную папку можно выполнив команду:

sudo apt update

Подключение репозиториев текущей версии orel-stable- 2.12

В /etc/apt/sources.list прописать путь к основному репозиторию (stable):

Или, по необходимости, к репозиторию testing или experimantal:

Не рекомендуется подключать одновременно репозитории testing и experimental, так как их совместимость друг с другом не гарантируется.

sudo apt update

sudo apt dist-upgrade

Подключение репозиториев Debian 9 "Stretch"

С установкой пакета debian-archive-keyring

Для Astra Linux Common Edition 2.12.8 установить пакет dirmngr для управления ключами и пакет debian-archive-keyring, содержащий ключи к репозиториям Debian:

sudo apt install debian-archive-keyring dirmngr

В /etc/apt/sources.list добавить ссылку на репозиторий Debian:

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

sudo apt update

Если пакет debian-archive-keyring установлен, то команда должна отработаться без ошибок.
Если пакет debian-archive-keyring не установлен, то команда сообщит, что не может проверить подписи репозитория, и сообщит, какие именно ключи нужны для проверки.

На момент написания этой статьи к репозиторию Stretch относится третий, последний отпечаток.

Для Astra Linux Special Edition пакет debian-archive-keyring может быть установлен из репозитория Astra Linux Common Edition после подключения этого репозитория или командами:

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

Без установки пакета debian-archive-keyring

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

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

sudo apt-key add ИМЯ_ФАЙЛА.

После установки ключа репозитория обновите список пакетов:

sudo apt update

Ключ репозитория Stretch действителен до 2025-го года, если установлен пакет debian-archive-keyring ключи будут обновляться автоматически по мере обновления пакета.

Проверить список установленных ключей можно командой

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

Для отключения проверки ключей в определении репозитория нужно указать дополнительный ключ trusted=yes:

Подключение репозитория выпуска orel-frozen - 1.11

далее в терминале выполнить:

Для обновления дистрибутива:

sudo apt update && sudo apt dist-upgrade

Подключение репозитория с пакетами из проекта debian (wheezy)

Процедура получения ключа для репозитория Wheezy в целом аналогична процедуре для Stretch (см. выше), отличаются только строка с адресом репозитория и ключ.

далее в терминале выполнить:

И, если пакеты с ключами ранее не установлены, по полученной подсказке получить ключи для репозитория.
Ключ (на момент написания этой статьи) следует получать по отпечатку 6FB2A1C265FFB764 :

Подключение репозиториев скопированных на локальный жесткий диск

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

Репозитории в локальной папке

Для добавления репозиториев, находящихся в локальной папке (нет доступа в интернет или нужна локальная копия) в /etc/apt/sources.list надо вписать строку:

Репозитории в скачанном образе .iso (применимо к образам дисков с обновлениями безопасности Astra Linux Special Edition)

в /etc/apt/sources.list надо вписать строку:

После внесения изменений в /etc/apt/sources.list обновить списки источников:

Для автоматического монтирования образа добавить в файл /etc/fstab строку вида:

/home/user/ISO/devel-smolensk.iso /opt/repo iso9660 defaults 0 0

Для того, чтобы такой репозиторий был доступен на других компьютерах удобно использовать предоставление файловых ресурсов через службу FTP.:
При этом источник в /etc/apt/sources.list для ОС Astra Linux Special Edition РУСБ.10015-01 будет выглядеть как:

deb ftp://путь_к ресурсу smolensk contrib main non-free

Подключение репозиториев Debian из закрытой сети

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

sudo apt-key add ИМЯ_ФАЙЛА_С_КЛЮЧОМ

Данный сценарий позволяет создать собственный репозиторий из произвольного набора ранее скачанных пакетов формата deb (двоичных пакетов Debian).

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

Репозиторий создаётся в текущем каталоге.

После завершения создания репозитория в текущем каталоге создаётся файл со строкой-ссылкой на созданный репозиторий для списка источников пакетов.

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

sudo apt install dpkg-dev apt-utils

Создать каталог, в котором будет размещён репозиторий, и перейти в этот каталог, например:

sudo mkdir /opt/repo
cd /opt/repo

Сохранить сценарий в файле с именем, например, create-flat-repo:

CODENAME="$"
if [ -z "$CODENAME" ] ; then
echo "Имя дистрибутива не определено, укажите вручную как аргумент команды"
exit 1
else
echo "Имя дистрибутива определено как \"$CODENAME\""
fi

ARCH=$(dpkg-architecture -q DEB_BUILD_ARCH)

mkdir -p dists/$CODENAME/main/binary-$ARCH

dpkg-scanpackages -a $ARCH . > dists/$CODENAME/main/binary-$ARCH/Packages

echo -e "Origin: Debian\nSuite: unstable\nCodename: $CODENAME\nVersion: $V\nArchitectures: $ARCH\nComponents: main" > dists/$CODENAME/Release
apt-ftparchive release . >> dists/$CODENAME/Release

Разрешить выполнение созданного файла:

sudo chmod +x create-flat-repo

sudo ./create-flat-repo

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

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

sudo apt install имя_пакета

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

Очистистить сохраненные списки пакетов, содержащие информации о ранее использовавшихся репозиториях:

sudo rm -rf /var/lib/apt/lists/*

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

sudo apt update

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

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