Как я могу исправить ошибку 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
- Пользователь только что обновил и повторно включил источник программного обеспечения PPA, который больше не существует
- Пользователь вручную ввел новый программный источник неправильно
- Был добавлен PPA, но сопровождающий впоследствии удалил некоторые / все PPA
где эти программные источники
PPA обычно сохраняются в одном из двух мест
/etc/apt/sources.list
- в файле с соответствующим именем с расширением.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
sudo apt-get update >> /tmp/update.txt 2>&1;
И стандартный вывод, и стандартный вывод команды
sudo apt-get update
записываются в файл/tmp/update.txt
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:
Вы можете видеть, что каталог для 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. Тем не менее, нет никаких гарантий, что это будет успешным.
меры
- Делай как обычно
sudo apt update
после добавления PPA/ репозитория. При обновлении вы можете заметить 404 ошибки; просто игнорируй это. - Откройте каталог репозитория, который вызывает ошибку 404 в вашем браузере; в этом случае это
https://dl.winehq.org/wine-builds/ubuntu
, Обычно доступные версии находятся вdists/
, - После того, как вы его нашли, откройте Software & Updates и замените название вашего выпуска доступным выпуском; желательно последний или LTS один. Замените раздел "Распределение" в бинарных и исходных кодах зеркал. В этом случае я заменяю
bionic
сartful
, - Делать
sudo apt update
снова. - Вы сделали! Теперь у вас не более 404 ошибок при обновлении списков ваших пакетов.
- Когда пакеты для вашей версии Ubuntu будут выпущены, повторите шаги 3 и 4, заменив раздел "Распространение" именем своего дистрибутива.
Если вы получаете сообщение об ошибке 404, пытаясь получить файлы безопасности или системные файлы из официального репозитория (не PPA), вы можете выбрать другое зеркало для решения этой проблемы.
Вы также можете:
А) определите его вручную, просмотрев этот список и выбрав самое последнее зеркало. (вы можете принять во внимание другие факторы, такие как расстояние и пропускная способность) или
Б) Выберите один автоматически.
В любом случае вы можете начать с приложения Software & Updates, как показано ниже: Затем выберите Download from, а затем Other. Затем вы можете вручную выбрать зеркало из списка или нажать кнопку "Выбрать лучший сервер", чтобы запустить несколько тестов и выбрать лучший сервер для вас в зависимости от текущих условий.
Обратите внимание, что это уже случилось со мной, и я был вне этих ситуаций. И это также сработало для моего друга. Даже не имея возможности объяснить почему, есть кое-что, что решило эту проблему:
- Отключить все ваши PPA;
- Бежать
sudo apt-get update
от терминала; - Снова включите ваши PPA;
- Бежать
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
Что обновляет вашу систему.