it-swarm.dev

Jak mohu opravit chybu 404 při použití PPA nebo aktualizaci seznamů balíků?

Zdá se, že PPA je neustále offline. Kdykoli použiju Sudo apt-get update, je zobrazena tato chyba:

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

Jak mohu opravit tyto chyby?

277
Pedro

Automatické odstranění

přeskočte na konec této odpovědi pro skriptovaný způsob, jak odstranit problematické softwarové zdroje pro všechny verze Ubuntu před Ubuntu 15.04

Co je 404 chyb

Chybová zpráva 404 nebo Nenalezeno je standardní kód odpovědi HTTP, který naznačuje, že klient byl schopen komunikovat se serverem, ale server nemohl najít to, co bylo požadováno.

Webový server hostující web obvykle vygeneruje webovou stránku „404 - Stránka nenalezena“, když se uživatelé pokusí následovat nefunkční nebo mrtvý odkaz.

Jaké jsou příčiny těchto chyb ve správci aktualizací

Tyto chyby obvykle způsobují tři hlavní oblasti v update-manager

  1. Uživatel právě upgradoval a znovu povolil zdroj softwaru PPA, který již neexistuje enter image description here
  2. Uživatel ručně zadal nový zdroj softwaru nesprávně enter image description here
  3. Byl přidán PPA, ale správce následně odstranil některé/všechny PPA

kde jsou tyto softwarové zdroje

PPA se obvykle ukládají na jednom ze dvou míst

  1. /etc/apt/sources.list
  2. v příslušně pojmenovaném souboru s příponou .list v /etc/apt/sources.list.d/ například webupd8team-jupiter-natty.list

Tento soubor seznamu obvykle obsahuje:

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

Poznámka: # na začátku řádku textu znamená, že je okomentován a není správcem balíčků zkontrolován.

Jak tyto chyby odstranit

Obvykle pokud spustíte Sudo apt-get update z terminálu nebo po klepnutí na tlačítko podrobností ve Správci aktualizací po stisknutí tlačítka aktualizace uvidíte chyby, jako například:

enter image description here

Pokud je chyba způsobena PPA - vyřeší to obvykle uvolněním podobně pojmenovaného PPA s adresou URL uvedenou v chybové zprávě.

enter image description here

Pokud byla chyba 404 způsobena dalším úložištěm, které bylo přidáno do /etc/apt/sources.list pak je jednodušší přidat # znak na začátek řádku pro komentář mimo urážlivé úložiště tj.

gksu gedit /etc/apt/sources.list

enter image description here

Více informací

Zde je zpráva o chybě správce aktualizací, která tento problém vyřeší:

Pokud máte tyto problémy bez PPA, podívejte se na tuto otázku:

316
fossfreedom

Automatické odstranění 404 Nenalezeno PPA skriptem

Toto je skript pro automatické odstranění všech 404 nenalezených PPA's.Copy níže uvedeného kódu a vložení do souboru a pojmenování jako 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

Dejte skriptu oprávnění ke spuštění

Sudo chmod +x ppa-remove

Zkopírujte a vložte soubor ppa-remove Do adresáře /usr/bin. K němu budete mít přístup odkudkoli.

Používání

Sudo ppa-remove

Popis skriptu

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

Příkaz tput setaf 6 Změní barvu textu terminálu na zelenou. Potom se zobrazí „Inicializace .. prosím čekejte“ zelenou barvou.

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 i stderr příkazu Sudo apt-get update Jsou zapsány do souboru /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 vyhledá řádek, který se skládá z W:, launchpad, 404 V souboru /tmp/update.txt. Pokud zjistí, že se v tomto řádku zobrazí (stdout) ) všechna písmena začínající od 26. místa ve sloupci 5. Tento standardní výstup byl přesměrován (zapsán) ​​do souboru /tmp/awk.txt.

Například:

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

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

v tomto 5. sloupci začíná od 26. znaku - pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Tento řádek byl uložen do souboru /tmp/awk.txt. Nyní další příkaz,

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

awk najděte sloupec1 a sloupec2 s oddělovačem /, kde jsou sloupce1 a sloupec2 zřetězeny / ze souboru /tmp/awk.txt a poté přesměrují (zapisují) stdout na /tmp/awk1.txt.

Nyní soubor /tmp/awk1.txt Obsahuje řádek pitti/postgresql.

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

Pokud existují dva stejné řádky, příkaz unique zobrazí pouze jeden řádek. Tento jediný řádek byl zapsán do /tmp/awk2.txt Nakonec /tmp/awk2.txt Sestává z jedinečných názvů PPA.

tput sgr0

Tento příkaz změní barvu textu terminálu na bílou.

Nakonec se spustí podmíněné příkazy if. if [ -s /tmp/awk2.txt ] Zkontrolujte, zda je obsah souboru /tmp/awk2.txt přítomen nebo ne. Pokud ano, pak vezme první řádek z /tmp/awk2.txt A provede příkaz Sudo add-apt-repository -r ppa:$line. Pokračuje až po poslední řádek.

Pokud ne, znamená to, že neexistuje žádný obsah. Takže se v něm říká: „Žádné PPA nebudou odstraněny“.

Screenshoty

enter image description here

enter image description here

51
Avinash Raj

Tyto chyby se zobrazují, protože vaše PPA repozitáře neposkytují balíčky pro vaši distribuci Ubuntu (tj.; quantal).

Podívejte se na následující screenshoty:

ppa: petrakis/wdt-main Launchpad logo

wdt-main

ppa: screenlets/ppa Launchpad logo

screenlets

Vidíte, že adresář pro quantal chybí, a proto dostáváte 404 Not Found Error Messages .

Chcete-li se těchto zpráv zbavit, musíte tyto úložiště PPA z vašeho systému odebrat. Postup odebrání smluv o prodeji:


Jak to vyšetřit a dospět k tomuto závěru?

Toto jsou chybové zprávy, které obdržíte pro 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

Otevřete kartu prohlížeče a otevřete odkaz, který dává 404 Nenalezeno chyby. V tomto případě http://ppa.launchpad.net/petrakis/ a jděte hlouběji podle odkazu, který dává chyby. Byli byste schopni vidět, jaký je skutečný problém.

21
Aditya

Nejpravděpodobnější, že se to děje, je to, že PPA již není udržována a musí být odstraněna. Můžete to udělat pouze pomocí:

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

Zvolte Starší úložiště

Pokud opravdu potřebujete balíčky z , které úložiště, můžete použít zrcadla ze starší verze.

Upozorňujeme však, že ne všechna starší vydání jsou zpětně kompatibilní ; některé z nich způsobují konflikty s vaším hlavním úložištěm balíčků.

Jediná věc, kterou můžete dělat, když dojde ke konfliktu, je budování ze zdroje nebo čekání, než poskytovatel uvolní úložiště pro vaši verzi Ubuntu. Nevíme přesně , kdy poskytovatelé balíků uvolní svůj balíček pro naši verzi, takže vy sami jste odpovědní za kontrolu svého úložiště pro vaši verzi uvolnění.

Toto lze použít s jakýmkoli úložištěm založeným na Debianu. Neexistuje však žádná záruka, že to bude úspěšné.

Kroky

  1. Proveďte obvyklé Sudo apt update po přidání PPA/úložiště. Můžete si všimnout, že při aktualizaci je 404 chyb; prostě to ignoruj. 404 Error
  2. Otevřete adresář úložiště, který způsobí chybu 404 v prohlížeči; v tomto případě je to https://dl.winehq.org/wine-builds/ubuntu. Dostupná vydání jsou obvykle umístěna v dists/. Mirrors
  3. Jakmile jej najdete, otevřete Software & Updates a nahraďte název svého vydání dostupným vydáním; nejlépe poslední nebo LTS jeden. Nahraďte část „Distribuce“ v zrcadlech binárního a zdrojového kódu. V tomto případě nahrazuji bionic za artful. enter image description here
  4. Do Sudo apt update znovu.
  5. Jsi hotový! Při aktualizaci seznamů balíků již nemáte více 404 chyb. enter image description here
  6. Když jsou balíčky pro vaši verzi Ubuntu uvolněny, opakujte kroky 3 a 4 nahrazením sekce 'Distribuce' názvem distribuce.
4
Aryo Adhi

Všimněte si, že se mi to už stalo a já jsem byl z těchto situací. A také to fungovalo pro mého přítele. I když nedokážeme vysvětlit, proč je tento problém vyřešen:

  1. Zakažte všechny vaše PPA;
  2. Spustit Sudo apt-get update z terminálu;
  3. Povolte své PPA znovu;
  4. Spustit Sudo apt-get update;

A najednou to fungovalo. Neptej se mě proč.

2
Danilo

Pokud se při pokusu o získání zabezpečení nebo systémových souborů z oficiálního repozitáře (nikoli PPA) zobrazuje chyba 404, můžete tento problém vyřešit pomocí jiného zrcadla.

Můžeš buď:

A) určete jedno ručně kontrolou tento seznam a výběrem nejnovějšího zrcadla. (možná budete chtít vzít v úvahu další faktory, jako je vzdálenost a šířka pásma) nebo

B) Vyberte si automaticky.

V obou případech můžete začít s aplikací Software & Updates, jak je ukázáno níže: Poté vyberte možnost Download from a následně Other. Pak můžete buď ručně vybrat zrcadlo podle vašeho výběru ze seznamu, nebo kliknout na tlačítko Vybrat nejlepší server, které provede některé testy a vybrat nejlepší server pro vás v závislosti na aktuálních podmínkách.

SnU

1
Elder Geek

Vyzkoušel jsem všechny možné odpovědi, ale jediným řešením bylo zkopírovat soubor výchozí Ubuntu 16.04 Xenial /etc/apt/sources.list do mého /etc/apt/sources.list.

Zdroje: https://Gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

To zachránilo můj Linux.

1
Damjan Pavlica