Невозможно выполнить установку из неподписанного репозитория ubuntu

Обновлено: 02.07.2024

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

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

Файл Release - один из самых важных файлов для работы репозитория в Ubuntu. Когда утилита apt обновляет список пакетов, она открывает адрес репозитория и пытается прочитать файл Release. В нем содержится основная информация о репозитории, а также адреса файлов packages.gz, в которых находятся списки пакетов, ссылки где их можно найти и контрольные суммы. Если этого файла нет, то репозиторий подключить невозможно.

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

1. Нет ветки репозитория для вашей версии Ubuntu

Сначала убедитесь, что вы используете правильные репозитории для своего дистрибутива. Например, утилита apt-add-repository при добавлении PPA репозитория добавляет к его адресу кодовое имя дистрибутива. У репозитория нет отдельной ветки для вашей системы, то он не сможет быть добавлен. Нужно вручную указать то, кодовое имя, для которого есть ветка.

Например, если вы пытаетесь добавить репозиторий ubuntu-audio-dev стандартным способом в Ubuntu, то получите ошибку:


Зайдите на страницу этого PPA репозитория на Launchpad и проверьте есть ли версия для вашего дистрибутива. Как видите, здесь версии для Ubuntu 18.04 Bionic нет, есть только для Ubuntu 13.04 Raring:


Конечно, такое использование репозиториев не очень безопасно, но если вам очень нужно его добавить, то можно найти файл репозитория в /etc/apt/sources.list.d/ и заменить в нем bionic на raring:



Теперь, репозиторий загружается нормально

sudo apt update


Система сообщает только что невозможно пройти проверку подлиности ключа, возможно, срок его действия уже истек. Чтобы игнорировать проверку подлинности репозитория по GPG добавить в строку конфигурации репозитория такой параметр:


2. Вы используете старую версию системы

sudo vi /etc/apt/sources.list


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

3. Удаление не работающих репозиториев

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


Затем перейдите на вкладку "Другое ПО":

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


Также можно удалить полностью репозиторий через терминал, выполнив команду:

sudo apt-add-repository --remove ppa://имя_репозитория/ppa

sudo apt-add-repository --remove ppa://ubuntu-audio-dev/ppa


Или еще можно удалить файл настроек репозитория из /etc/apt/sources.list.d/, но этот вариант не такой надежный, так, как в системе все еще останется ключ репозитория.

Выводы

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

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

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

В основном репозитории Ubuntu можно поделить на два типа - официальные и репозитории сторонних разработчиков. В официальных репозиториях находятся только стабильные программы, причем их версии не будут обновляться, они могут получать только обновления безопасности. Сторонние репозитории ubuntu могут создаваться кем угодно и их автор может обновлять и добавлять программное обеспечение в репозиторий когда нужно. PPA репозитории Ubuntu созданы с целью упростить процесс создания сторонних репозиториев.

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

Вторая группа веток более интересная. Дело в том что в Ubuntu есть несколько веток для различного рода программного обеспечения:

  • Main - основная ветка - стабильное официально поддерживаемое Canonical ПО
  • Restricted - официально поддерживаемое ПО распространяемое не под лицензией GPL
  • Universe - программы, поддерживаемые сообществом Ubuntu
  • Multiverse - ветка проприетарного программного обеспечения

Такой структуры придерживаются официальные репозитории, сторонние ppa могут же иметь другую структуру или просто ветку main.

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

Настройка репозиториев в Ubuntu

Настройки репозиториев Ubuntu находятся в нескольких файлах в каталоге /etc/apt.

Все официальные репозитории записываются в файл репозиториев Ubuntu - /etc/apt/sources.list. Для каждого PPA репозитория создается отдельный файл в каталоге /etc/apt/sources.list.d/*

Таким образом, вы уже знаете как примитивным способом посмотреть список репозиториев в Ubuntu. По сути, уже можно открыть этот файл и добавить репозиторий Ubuntu прямо туда в конец файла, но для таких действий в системе есть специальные инструменты и далее мы их рассмотрим.

Настройка репозиториев в GUI

Управление репозиториями можно осуществлять с помощью утилиты настроек системы. Запустите Настройки системы, затем откройте Программы и обновления или сразу же запустите Программы и обновления из меню Dash:

ubuntu

На первой вкладке вы можете включить или отключить ветки официальных репозиториев (main, restricted . ), а также выбрать ближайшее к вам зеркало:

ubuntu1

Для добавления репозитория в Ubuntu перейдите на вкладку другое ПО на этой вкладке вы можете видеть весь список репозиториев Ubuntu которые были подключены к системе:

ubuntu2

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

Для добавления репозитория Ubuntu нажмите кнопку Добавить:

ubuntu3

Здесь в единственном поле нужно ввести apt строку репозитория и нажать кнопку добавить источник.

ubuntu6

Apt строка репозитория имеет такой синтаксис:

Первая строка - официальный репозиторий, вторая - PPA репозиторий ubuntu. Как видите, выглядят они одинаково. С версией дистрибутива все понятно, это кодовое имя, с веткой тоже - это main. А вот где брать адрес? Это уже ваше дело, вы можете искать репозитории где угодно, на форумах, в поисковых системах или в нашей статье, где собран список лучших репозиториев.

Установка репозитория Ubuntu завершена и он появился в списке. Чтобы его отключить достаточно просто снять галочку. А чтобы удалить репозиторий Ubuntu нажмите кнопку удалить:

ubuntu5

Для сторонних репозиториев необходимо импортировать GPG ключ для правильной работы в системе, если ключ не добавить, то во время обновления репозиториев Ubuntu apt выдаст ошибку проверки подписи. Это делается, чтобы никто не мог подменить пакеты и вы не установили вирусов. Перейдите на вкладку Аутентификация, затем выберите импортировать ключ из файла:

ubuntu8

Удалять ключи также можно кнопкой удалить:

ubuntu9

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

ubuntu4

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

Настройка репозиториев Ubuntu PPA

На самом деле PPA репозитории такие, же как и обычные репозитории. Если вы хотите добавить репозиторий вручную, вы можете узнать apt строку и ключ, раскрыв спойлер Technical details about this PPA на странице описания репозитория:

ubuntu10

Теперь его можно добавить в систему, так же как описано выше.

Добавление репозиториев в Ubuntu из терминала

Во многих инструкциях мы видим команды для подключения репозитория в Ubuntu через терминал. Действительно, это немного удобнее чем запускать утилиту, загружать ключи и делать все мышкой. Чтобы добавить репозиторий Ubuntu через терминал используйте команду: apt-add-repository:

sudo apt-add-repository "deb http://ppa.launchpad.net/shutter/ppa/ubuntu wily main"

В кавычках указана apt строка репозитория. Также можно просто добавить строчку в /etc/apt/sources.list:

echo "deb http://ppa.launchpad.net/shutter/ppa/ubuntu wily main" >> /etc/apt/sources.list

Добавить репозиторий в Ubuntu через терминал намного проще чем в графическом интерфейсе.

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

Удалить репозиторий Ubuntu через терминал можно той же командой с опцией --remove:

sudo apt-add-repository --remove "deb http://ppa.launchpad.net/shutter/ppa/ubuntu wily main"

Или же просто закомментировать deb строку в файле /etc/apt/sources.list или в одном из файлов /etc/apt/sources.list.d/*.

Добавление репозитория PPA в Ubuntu

Добавить репозиторий PPA в Ubuntu можно той же командой. Как я уже говорил система автоматически распознает репозиторий и скачает нужные ключи. Формат записи такой:

sudo apt-add-repository ppa:репозиторий/ppa

sudo apt-add-repository ppa:shutter/ppa

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

Удалить репозиторий в Ubuntu можно такой же командой, как и в предыдущем примере:

sudo add-apt-repository --remove ppa:репозиторий/ppa

Полностью удалить PPA из системы можно командой:

sudo ppa-purge ppa:репозиторий/ppa

Возможно, утилиту ppa-pure необходимо будет установить командой:

sudo apt-get install ppa-purge

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

sudo apt-get update

Выводы

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

Когда вы пытаетесь установить программу из сторонних репозиториев разработчика программы или из PPA вы можете столкнуться с ошибкой gpg недоступен открытый ключ. Это не значит, что программа платная и вам надо приобрести к ней ключ. Дело в том, что для защиты репозиториев от подмены используется подписывание пакетов с помощью GPG ключей.

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

Ошибка GPG недоступен открытый ключ

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


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

В данном случае не хватает ключа от репозитория Google - 78BD65473CB3BD13. Можно попытаться получить его с серверов Ubuntu:

Или с другого сервера:

Если у вас нет ключа от PPA или любого другого репозитория, связанного с разработчиками Ubuntu это должно помочь. Ну и ключ от репозитория Google там есть:


Если же вы получаете ошибку. Ищите данный ключ в интернете, если ключа нет на сайте разработчика, то его можно найти на различных форумах. Скачайте его и добавьте в систему такой командой:

sudo apt-key add /путь/к/файлу.gpg

Ещё одна альтернатива первому способу - попытаться использовать графическую утилиту Y-PPA-Manager от webupd8. Для её установки выполните такие команды:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt install y-ppa-manager

Затем запустите программу из главного меню или терминала. В главном окне программы выберите Advanced:


В открывшемся окне выберите Try to import all missing GPG keys, а потом дождитесь завершения работы утилиты:


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

Выводы

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.


Зачастую в актуальной (последней версии) системе Ubuntu репозитории сторонних приложений бывают не проиндексированы или, попросту говоря, мы не можем подключить репозиторий нужного нам приложения, который работал в предыдущем дистрибутиве Ubuntu. Выходит не сможем установить данное приложение? Не всё так мрачно.
Как известно, репозиторий служит для установки и дальнейшего обновления на случай исправления ошибок и модификации данного приложения/приложений. Но если вас раньше устраивала работа какого-то приложения, то вы его, скорее всего, можете установить deb пакетом, без подключения репозитория.

Как это сделать?

Сейчас мы разберём установку одного приложения deb пакетом на конкретном примере.
Сегодня пользователь softfanat в комментарии к странице "Как добавить на панель Unity значок Завершение сеанса в Ubuntu 13.04/12.10/12.04" выразил сожаление, что не может установить данное приложение в Ubuntu 13.10. Вот на нём и будет стриться вся инструкция по установке приложения без подключения репозитория.

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

sudo add-apt-repository ppa:upubuntu-com/apps
sudo apt-get update
sudo apt-get install logout-session

Но терминал выдал ошибку подобную этой:


Чтобы данная ошибка не повторялась после каждого обновления в терминале, этот непроиндексированный репозиторий нужно удалить из Источников приложений по инструкции ЗДЕСЬ.

2. Для установки данного приложения deb пакетом, копируем название данного репозитория из команды:


Вставляем в поле поиска браузера и нажмаем Ввод или Enter:


И переходим на Launchpad, где расположен данный репозиторий:



В данном репозитории может находиться несколько приложений. Находим нужное нам и кликаем на ссылке View package details (указана стрелкой).

Когда откроются детали пакетов приложений, кликните на строке с приложением, затем находим deb пакет и клик на ссылке для загрузки:


Должно ткрыться окно с интересующим нас deb пакетом, где нужно нажать ОК:


3. По окончании загрузки автоматически откроется Центр приложений Ubuntu с предложением на установку данного приложения. Нажимаем Установить, введите пароль и по окончании установки можно пользоваться приложением.

Примечание. В данном варианте установки приложения в репозитории находится пакет all.deb, т.е. для любой архитектуры системы, но в каком то другом приложении может быть два пакета: amd64 и i386. В таком случае выберите пакет на установку соответственно своей архитектере.

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

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