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


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

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

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


238
2017-10-14 01:16


Источник


Поскольку это, по-видимому, является одним из основных ответов «Не удалось получить», я просто хочу указать, что это также может произойти с URL-адресами Ubuntu «partner» в source.list; проверьте свои ошибки, чтобы убедиться, что они те, и попробуйте их комментировать. Я столкнулся с этой проблемой (и решением) с Кетзалом. - joseph_morris


Ответы:


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

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

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

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

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

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

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

  1. Пользователь только что обновил и снова включил источник программного обеспечения PPA, который больше не существует enter image description here
  2. Пользователь неправильно напечатал новый источник программного обеспечения вручную enter image description here
  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 с терминала или нажмите кнопку сведений в диспетчере обновлений после нажатия кнопки обновления, вы увидите такие ошибки, как:

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

Сценарий удаления для всех версий Ubuntu до 15.04

Я написал быстрый скрипт, который проверяет PPA и Software-Sources, которые показывают ошибки 404. Это работает для всех версий Ubuntu до 15.04. В течение 15.04 и последующих выполните описанные выше ручные методы.

Его в моем PPA:

sudo add-apt-repository ppa:fossfreedom/packagefixes
sudo apt-get update
sudo apt-get install banish404

Вы можете просто загрузить пакет deb и установить его напрямую:

wget https://launchpad.net/~fossfreedom/+archive/packagefixes/+files/banish404_0.1-4_all.deb
sudo dpkg -i banish404_0.1-4_all.deb

Нотабене его же пакет deb для всех дистрибутивов.

Вопросы / комментарии / улучшение Launchpad Свяжитесь со мной по ссылке

Как использовать:

sudo banish404

Сценарий будет автоматически создавать резервные копии ваших источников до их модификации, которые можно найти в /etc/apt

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

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

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


282
2018-01-05 00:15



Используя теперь, чтобы надеяться исправить мою проблему - для спокойствия было бы здорово, если бы вы могли добавить ссылку [или короткую секцию] о том, как «восстановить» из резервной копии, если это необходимо - Louis Maddox
Если вы удалите эти ppas, это означает, что вам нужно получать соответствующие обновления из другого места? - Addem
@fossfreedom Почему эта работа выше 15.04? - Mark Yisri
Я использовал сценарий удаления для ubutu 14.04. Он отлично работал. Большое спасибо. - Mohit Mittal
Примечание. Решение для сценариев не работает на сервере Ubuntu без настройки дисплея (проверено на 14.04 LTS). - cerd


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

Это скрипт, который автоматически удаляет все 404 Не найденные PPA'. Скопируйте приведенный ниже код и вставьте его в файл и назовите его как 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 directory.So, что вы можете получить к нему доступ из любого места.

Применение

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 file.If он обнаружил, что тогда в этой строке он отображает (stdout) все буквы, начиная с 26-го места в столбце. Этот стандартный вывод был перенаправлен (записан) на /tmp/awk.txtфайл.

Например:

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

5th coloumn - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

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

Эта строка была сохранена в /tmp/awk.txt file.Now следующей команды,

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 (только для одной строки). Эта отдельная строка была написана для /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 command.It продолжается до последней строки.

Если нет, это означает, что нет содержимого. Поэтому в нем говорится: «Нет PPA для удаления».

Скриншоты

enter image description here

enter image description here


47
2018-03-10 18:08



/ usr / bin / ppa-remove: строка 32: синтаксическая ошибка: неожиданный конец файла - Shravan40


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

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

PPA: Петракис / WDT-Главный Launchpad logo

wdt-main

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


20
2018-02-16 18:59





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

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

17
2017-12-23 18:08



это просто спасло дублирующий вопрос от публикации. У меня было тело моего Q готово и так же, как я начал набирать свой заголовок, нашел ссылку .. почему бы им не оставить список в одном месте! некоторые из них перечислены в /etc/apt/sources.list где я проверил, но не знал, что мне нужно смотреть /etc/apt/sources.list.d/ тоже .. спасибо .. - precise
это, а затем добавление надлежащего нового PPA оказалось лучшим (только работающим) решением для меня. - markus-tharkun


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

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

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

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

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

меры

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

3
2018-05-23 06:07





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

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

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


2
2017-11-19 20:22



Для меня не было никакой разницы. Все еще 404s. - kwoxer
Я отключил некоторые нежелательные PPA и попытался sudo apt-get update и он работал отлично. - Shashanth


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

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

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

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

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

SnU


1
2018-01-15 14:57





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

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

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


0
2018-05-03 11:06