Вопрос или проблема
Я абсолютно новичок в 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
, которые предоставляют графический интерфейс для управления источниками программного обеспечения и их ключами. Это может быть более наглядно и удобно для начинающего пользователя.
Следуя этим шагам, вы сможете устранить конфликт подписей. Не забудьте регулярно обновлять свою систему и следовать лучшим практикам безопасности, чтобы избежать подобных проблем в будущем.