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

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

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

Как исправить эти ошибки?

300
задан 8 October 2014 в 21:57

8 ответов

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

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
0
ответ дан 8 October 2014 в 21:57

Автоматизированное удаление

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

Что такое 404 ошибки

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

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

Что является причинами этих ошибок в менеджере обновления

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

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

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

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

  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

Примечание a # впереди строки текстовых средств, что это комментируется и не проверяется диспетчером пакетов.

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

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

enter image description here

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

enter image description here

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

gksu gedit /etc/apt/sources.list

enter image description here

Подробнее

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

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

309
ответ дан 8 October 2014 в 21:57

Вы получаете эти ошибки, потому что ваши репозитории PPA не предоставляют пакеты для вашего дистрибутива Ubuntu (то есть; quantal).

Посмотрите на следующие скриншоты:

ppa: petrakis / wdt-main Launchpad logo

wdt-main

[ 1122] ppa: screenlets / ppa Launchpad logo

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/ и идти глубже по ссылке, которая дает ошибки. Вы сможете увидеть, в чем проблема на самом деле.

0
ответ дан 8 October 2014 в 21:57

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

Это скрипт для автоматического удаления всех 404 Not found PPA's. Скопируйте приведенный ниже код и вставьте его в файл и назовите его как 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;

    И stdout, и stderr команды 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. Если он обнаружил, что тогда в этой строке он выводит (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 с разделителем /, где столбец1 и столбец2 объединены с помощью / из файла /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».

Скриншоты

enter image description here

enter image description here

0
ответ дан 8 October 2014 в 21:57

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

  1. Отключить все ваши PPA;
  2. Запустить sudo apt-get update из терминала;
  3. Включить ваши PPA снова,
  4. Run sudo apt-get update;

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

0
ответ дан 8 October 2014 в 21:57

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

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

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

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

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

Шаги

  1. Делать как обычно sudo apt update после добавления PPA / репозитория. При обновлении вы можете заметить 404 ошибки; просто игнорируй это. 404 Error
  2. Откройте каталог репозитория, который вызывает ошибку 404 в вашем браузере; в данном случае это https://dl.winehq.org/wine-builds/ubuntu. Обычно доступные версии находятся в dists/. Mirrors
  3. После того, как вы его нашли, откройте Software & amp; Обновления и замените название вашего выпуска доступным выпуском; желательно последний или LTS один. Замените раздел «Распределение» в бинарных и исходных кодах зеркал. В этом случае я заменяю bionic на artful. enter image description here
  4. Do sudo apt update снова.
  5. Вы сделали! Теперь у вас не более 404 ошибок при обновлении списков ваших пакетов. enter image description here
  6. Когда пакеты для вашей версии Ubuntu будут выпущены, повторите шаги 3 и 4, заменив раздел «Распространение» именем своего дистрибутива.
0
ответ дан 8 October 2014 в 21:57

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

Вы можете либо:

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

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

В любом случае вы можете начать с Software & amp; Обновляет приложение, как показано ниже: Затем выберите «Загрузить из» и «Другое». Затем вы можете вручную выбрать зеркало из списка или нажать кнопку «Выбрать лучший сервер», чтобы запустить несколько тестов и выбрать лучший сервер для вас в зависимости от текущих условий.

SnU

0
ответ дан 8 October 2014 в 21:57

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

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

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

0
ответ дан 8 October 2014 в 21:57

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

Похожие вопросы: