Как я могу исправить ошибку 404 при использовании PPA или обновлении списков моих пакетов?

PPA, кажется, постоянно в автономном режиме. Всякий раз, когда я использую sudo apt-get updateэта ошибка показана:

W: Failed to fetch http://ppa.launchpad.net/ 404  Not Found

Как я могу исправить эти ошибки?

8 ответов

Автоматическое удаление

перейдите к нижней части этого ответа, чтобы найти скрипт-способ удаления источников программного обеспечения для всех версий Ubuntu до Ubuntu 15.04.

Какие 404 ошибки

Сообщение об ошибке 404 или Not Found - это стандартный код ответа HTTP, указывающий, что клиент смог установить связь с сервером, но сервер не смог найти то, что было запрошено.

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

Каковы причины этих ошибок в менеджере обновлений?

Как правило, три основные области вызывают эти ошибки в update-manager

  1. Пользователь только что обновил и повторно включил источник программного обеспечения PPA, который больше не существуетвведите описание здесь
  2. Пользователь вручную ввел новый программный источник неправильновведите описание здесь
  3. Был добавлен PPA, но сопровождающий впоследствии удалил некоторые / все PPA

где эти программные источники

PPA обычно сохраняются в одном из двух мест

  1. /etc/apt/sources.list
  2. в файле с соответствующим именем с расширением.list в /etc/apt/sources.list.d/ например webupd8team-jupiter-natty.list

Этот файл списка обычно содержит:

deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main

Обратите внимание # в начале строки текста означает, что она закомментирована и не проверяется менеджером пакетов.

Как устранить эти ошибки

Как правило, если вы запускаете sudo apt-get update из терминала или нажмите кнопку сведений в диспетчере обновлений после нажатия кнопки обновления, вы увидите такие ошибки, как:

введите описание здесь

Если ошибка происходит из-за PPA - обычно снятие галочки с одноименного PPA с URL-адресом, указанным в сообщении об ошибке, разрешит эту проблему.

введите описание здесь

Если ошибка 404 произошла из-за дополнительного репозитория, который был добавлен в /etc/apt/sources.list тогда его легче добавить # символ в начале строки, чтобы закомментировать некорректное хранилище, т.е.

gksu gedit /etc/apt/sources.list

введите описание здесь

Больше информации

Вот отчет об ошибке в диспетчере обновлений для решения этой проблемы:

Если вы получаете эти проблемы без PPA, проверьте этот вопрос:

Автоматическое удаление 404 Не найден PPA через скрипт

Это скрипт для автоматического удаления всех PPA 404 Not found. Скопируйте приведенный ниже код, вставьте его в файл и назовите его ppa-remove,

#!/bin/bash
sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" 
sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt; sort -u /tmp/awk1.txt > /tmp/awk2.txt
tput sgr0
if [ -s /tmp/awk2.txt ]
then
  tput setaf 1
  printf "PPA's going to be removed\n%s\n" "$(cat /tmp/awk2.txt)"
  tput sgr0
  while read -r line; do echo "sudo add-apt-repository -r ppa:$line"; done < /tmp/awk2.txt > out
  bash out
else
  tput setaf 1
  echo "No PPA's to be removed"
  tput sgr0
fi

Дать разрешение на выполнение скрипту

sudo chmod +x ppa-remove

Скопируйте и вставьте ppa-remove подать в /usr/bin каталог. Так что вы можете получить к нему доступ из любого места.

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

sudo ppa-remove

Описание скрипта

[ -f /tmp/update.txt ] && sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" || echo "No update file"

tput setaf 6 Команда превращает цвет текста терминала в зеленый. И затем он отображает "Инициализация.. Пожалуйста, подождите" зеленым цветом.

sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt; uniq /tmp/awk1.txt > /tmp/awk2.txt
  1. sudo apt-get update >> /tmp/update.txt 2>&1;

    И стандартный вывод, и стандартный вывод команды sudo apt-get update записываются в файл /tmp/update.txt

  2. awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;

Awk ищет строку, которая состоит из W:,launchpad,404 в /tmp/update.txt file.Если он обнаружил, что затем в этой строке он отображает (stdout) все буквы, начиная с 26-го места в столбце 5. Этот стандартный вывод был перенаправлен (записан) в /tmp/awk.txtфайл.

Например:

W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages  404  Not Found

5-я колонна - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

в этом 5-м столбце начинаются с 26-го символа pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Эта строка была сохранена в /tmp/awk.txt файл. Теперь следующая команда,

awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;  

awk узнает столбец1 и столбец2 с разделителем / где column1 и column2 объединены /от /tmp/awk.txt файл, а затем перенаправляет (написано) стандартный вывод /tmp/awk1.txt файл.

Сейчас /tmp/awk1.txt файл содержит pitti/postgresql линия.

uniq /tmp/awk1.txt > /tmp/awk2.txt

Если есть две одинаковые строки, unique Команда выводит (stdout) только одну строку. Эта строка была записана в /tmp/awk2.txtв заключение /tmp/awk2.txt состоит из уникальных имен PPA.

tput sgr0

Эта команда меняет цвет текста терминала на белый.

в заключение if условные заявления будут выполнены. if [ -s /tmp/awk2.txt ] проверить содержимое файла /tmp/awk2.txt или нет. Если да, то первая строка /tmp/awk2.txt и выполняет sudo add-apt-repository -r ppa:$line Команда продолжается до последней строки.

Если нет, это означает, что нет содержимого. Так что он говорит: "Не нужно удалять PPA".

Скриншоты

введите описание здесь

введите описание здесь

You are getting these errors because your PPA repositories don't provide packages for your distribution of Ubuntu (ie; quantal).

Look at the following screenshots:

ppa:petrakis/wdt-main Логотип панели запуска

WDT-Главный

ppa:screenlets/ppa Логотип панели запуска

Screenlets

Вы можете видеть, что каталог для quantal отсутствует и, следовательно, вы получаете 404 Not Found Error Messages,

Чтобы избавиться от этих сообщений, вы должны удалить эти репозитории PPA из вашей системы. Следуйте этому вопросу о том, как удалить PPA:


Как исследовать это и прийти к такому выводу?

Это сообщения об ошибках, которые вы получаете за wdt-main PPA:

W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/source/Sources  404  Not Found
, W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/binary-amd64/Packages  404  Not Found
, W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/binary-i386/Packages  404  Not Found

Откройте вкладку браузера и откройте ссылку, которая выдает 404 Not Found Errors. В этом случае http://ppa.launchpad.net/petrakis/ и идти глубже по ссылке, которая дает ошибки. Вы сможете увидеть, что является реальной проблемой.

Наиболее вероятным, что это происходит, является то, что PPA больше не поддерживается и должен быть удален. Вы можете сделать это, просто используя:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*

Выберите более старый репозиторий

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

Тем не менее, обратите внимание, что не все старые версии имеют обратную совместимость; некоторые из них вызывают конфликты с вашим основным хранилищем пакетов.

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

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

меры

  1. Делай как обычно sudo apt update после добавления PPA/ репозитория. При обновлении вы можете заметить 404 ошибки; просто игнорируй это.
  2. Откройте каталог репозитория, который вызывает ошибку 404 в вашем браузере; в этом случае это https://dl.winehq.org/wine-builds/ubuntu, Обычно доступные версии находятся в dists/,
  3. После того, как вы его нашли, откройте Software & Updates и замените название вашего выпуска доступным выпуском; желательно последний или LTS один. Замените раздел "Распределение" в бинарных и исходных кодах зеркал. В этом случае я заменяю bionic с artful,
  4. Делать sudo apt update снова.
  5. Вы сделали! Теперь у вас не более 404 ошибок при обновлении списков ваших пакетов.
  6. Когда пакеты для вашей версии Ubuntu будут выпущены, повторите шаги 3 и 4, заменив раздел "Распространение" именем своего дистрибутива.

Если вы получаете сообщение об ошибке 404, пытаясь получить файлы безопасности или системные файлы из официального репозитория (не PPA), вы можете выбрать другое зеркало для решения этой проблемы.

Вы также можете:

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

Б) Выберите один автоматически.

В любом случае вы можете начать с приложения Software & Updates, как показано ниже: Затем выберите Download from, а затем Other. Затем вы можете вручную выбрать зеркало из списка или нажать кнопку "Выбрать лучший сервер", чтобы запустить несколько тестов и выбрать лучший сервер для вас в зависимости от текущих условий.

Обратите внимание, что это уже случилось со мной, и я был вне этих ситуаций. И это также сработало для моего друга. Даже не имея возможности объяснить почему, есть кое-что, что решило эту проблему:

  1. Отключить все ваши PPA;
  2. Бежать sudo apt-get update от терминала;
  3. Снова включите ваши PPA;
  4. Бежать sudo apt-get update;

И вдруг это сработало. Не спрашивай меня почему.

Я испробовал все возможные ответы, но единственным решением было скопировать файл Ubuntu 16.04 Xenial по умолчанию /etc/apt/sources.list в мой /etc/apt/sources.list,

Источники: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Это спасло мой Linux.

> Ваши источники испорчены / испорчены, но мы можем составить новый свежий список.

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

sudo rm /etc/apt/sources.list

Затем введите:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*

Затем откройте источники ПО:

sudo software-properties-gtk

Вы увидите 5 флажков, отметьте их все, а под ними измените сервер на ближайший к вам, например, если вы живете в Соединенных Штатах, вы должны установить сервер Соединенных Штатов, применить параметры и закрыть окно.

Затем перейдите в свой терминал и введите:

sudo apt-get update && upgrade

Что обновляет вашу систему.

Другие вопросы по тегам