Я не могу установить программы через терминал, потому что постоянно получаю ошибку “противоречивые значения”.

Вопрос или проблема

Я абсолютно новичок в Linux и использую Ubuntu 24.04.1 LTS. Я пытаюсь установить программы через терминал, но постоянно сталкиваюсь с одной и той же проблемой:

E: Conflicting values set for option Signed-By regarding source https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu/ jammy: /usr/share/keyrings/oracle-jdk11-installer.gpg != /usr/share/keyrings/oracle-jdk18-installer.gpg

E: Невозможно прочитать список источников.

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

Некоторые люди упоминали, что эта проблема очень похожа на проблему, описанную в этом посте: “Conflicting values set for option Signed-By regarding source”, но я просмотрел этот пост несколько раз, пытаясь понять, как использовать предлагаемый код для решения моей проблемы, но на самом деле я почти ничего не понимаю, так как, как я уже говорил ранее, у меня почти нет опыта работы с Linux или Ubuntu.

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

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

curl https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg add -

Но теперь я получаю новую ошибку:

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).


% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100   196  100   196    0     0    290      0 --:--:-- --:--:-- --:--:--   290
gpg: no valid OpenPGP data found.

Я попробовал ввести это, так как поискал в гугле и нашел пост об этом на этом же сайте:

sudo apt-key add gpg

Но это выдает мне следующее и, похоже, ничего не делает, так как выдает тот же код ошибки:

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK

И на этом этапе я не имею ни малейшего представления, что делать.

Ответ или решение

Ваша проблема связана с конфликтом подписей в списках источников программного обеспечения на вашем Ubuntu 24.04.1 LTS. Это довольно распространённая ошибка среди пользователей, которые имеют дело с PPA (Personal Package Archives) и управлением подписью ключей репозитория.

Теоретическая часть:

В Ubuntu и других системах на базе Debian, когда вы добавляете сторонние репозитории через PPA, они добавляют свои публичные ключи в вашу систему для обеспечения доверия происхождения пакетов. Конфликт возникает, когда для одного источника пакетов (PPA) определены два разных ключа подписи. Обычно требуется, чтобы у каждого источника был один ясный и согласованный ключ для подписи.

Пример из вашей ситуации:

В вашем случае, система сообщает о конфликте между двумя ключами:
/usr/share/keyrings/oracle-jdk11-installer.gpg и /usr/share/keyrings/oracle-jdk18-installer.gpg. Это говорит о том, что один и тот же репозиторий пытается использовать разные файлы для подписки, что и вызывает ошибку.

При использовании PPA, можно столкнуться с устаревшими методами управления ключами, такими как apt-key, который теперь считается deprecated (устаревшим). В современных версиях Ubuntu рекомендуется использовать директорию /etc/apt/trusted.gpg.d/ для хранения файлов ключей публичных подписей.

Применение:

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

Шаг 2: Проверьте и исправьте ваши файлы списка источников. Зайдите в директорию /etc/apt/sources.list.d/ и найдите файл, связанный с PPA, который вы добавили для Oracle JDK. Вам нужно найти строку, где у вас упоминается PPA linuxuprising для Java и отредактировать её.

sudo nano /etc/apt/sources.list.d/linuxuprising-java.list

Убедитесь в том, что строка с PPA выглядит следующим образом:

deb [signed-by=/usr/share/keyrings/oracle-jdk<VERSION>-installer.gpg] https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu/ jammy main

Замените <VERSION> на версию (например, 18 или 11), которую вы намерены использовать.

Шаг 3: Управление ключами. Сначала скачайте ключ PPA:

sudo mkdir -p /usr/share/keyrings
curl -fsSL https://example.com/path-to-key.gpg | sudo tee /usr/share/keyrings/oracle-jdk<VERSION>-installer.gpg > /dev/null

Замените https://example.com/path-to-key.gpg на фактический URL ключа, который обычно упоминается в инструкциях по использованию PPA на их странице или в документации.

Шаг 4: Обновите списки пакетов и попытайтесь установить нужный пакет заново.

sudo apt update
sudo apt install <название_пакета>

Проверьте, исчезла ли ошибка.

Шаг 5: Потенциальная ручная отладка. Если ошибка сохраняется, возможно, понадобится удалить устаревшие или лишние PPA, либо повторно их добавить. Вы можете сделать это через команду:

sudo add-apt-repository --remove ppa:linuxuprising/java
sudo add-apt-repository ppa:linuxuprising/java

Или вручную отредактировав файлы в /etc/apt/sources.list.d/.

Шаг 6: Используйте GUI инструменты. Ubuntu предлагает утилиты, такие как Software & Updates, которые предоставляют графический интерфейс для управления источниками программного обеспечения и их ключами. Это может быть более наглядно и удобно для начинающего пользователя.

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

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

Капча загружается...