Vraag Hoe kan ik een 404-fout oplossen bij het gebruik van een PPA of bij het bijwerken van mijn pakketlijsten?


PPA lijkt constant offline te zijn. Wanneer ik gebruik sudo apt-get update, deze fout wordt getoond:

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

Hoe los ik deze fouten op?


240
2017-10-14 01:16


oorsprong


Omdat dit een van de belangrijkste antwoorden "Mislukt om te halen" lijkt te zijn, wil ik er hier alleen op wijzen dat dit ook kan gebeuren met Ubuntu "partner" -URL's in de sources.list; Controleer uw fouten om te zien of dit de fouten zijn en probeer ze uit te kletsen. Ik ben tegen die kwestie (en oplossing) aangelopen vanuit Quetzal. - joseph_morris


antwoorden:


Geautomatiseerde verwijdering

ga naar de onderkant van dit antwoord voor een gescripte manier om aanstootgevende softwarebronnen voor alle ubuntu-versies te verwijderen voorafgaand aan Ubuntu 15.04

Wat zijn 404-fouten

Het 404- of Not Found-foutbericht is een HTTP-standaardantwoordcode   geeft aan dat de client met de server kon communiceren,   maar de server kon niet vinden wat werd gevraagd.

De server voor het hosten van de website genereert meestal "404 - pagina niet"   Gevonden "webpagina, wanneer gebruikers proberen een verbroken of verbroken link te volgen.

Wat zijn de oorzaken van deze fouten in update-manager

Doorgaans veroorzaken drie hoofdgebieden deze fouten update-manager

  1. Een gebruiker heeft zojuist een upgrade uitgevoerd en heeft een PPA-softwarebron die niet langer bestaat opnieuw ingeschakeld enter image description here
  2. Een gebruiker heeft een nieuwe softwarebron handmatig verkeerd ingevoerd enter image description here
  3. Er is een PPA toegevoegd, maar de maintainer heeft vervolgens een deel van of alle PPA verwijderd

waar zijn deze software-bronnen

PPA's worden meestal opgeslagen op een van de twee locaties

  1. /etc/apt/sources.list 
  2. in een bestand met de juiste naam met de bestandsextensie .list in /etc/apt/sources.list.d/ bijvoorbeeld webupd8team-jupiter-natty.list

Dit lijstbestand bevat meestal:

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

Opmerking a # aan de voorkant van een regel tekst betekent dat deze is becommentarieerd en niet wordt gecontroleerd door de pakketbeheerder.

Hoe deze fouten te elimineren

Meestal als je loopt sudo apt-get update vanaf een terminal of klik op de knop Details in Update Manager nadat u op de knop Vernieuwen hebt gedrukt, ziet u fouten zoals:

enter image description here 

Als de fout te wijten is aan een PPA - meestal zal het ontkoppelen van de PPA met dezelfde naam en de URL die in het foutbericht wordt getoond dit oplossen.

enter image description here 

Als de 404-fout te wijten was aan een extra repository die is toegevoegd aan /etc/apt/sources.list dan is het gemakkelijker toe te voegen # teken aan het begin van de regel om de overtredende repository, d.w.z.

gksu gedit /etc/apt/sources.list

enter image description here

Verwijdering van scripts voor alle ubuntu-versies vóór 15.04

Ik heb een snel script geschreven dat controleert op PPA's en softwarebronnen die de 404-fouten vertonen. Dit werkt voor alle Ubuntu-versies vóór 15.04. Voer voor 15.04 en later de handmatige methoden uit die hierboven zijn beschreven.

Het zit in mijn PPA:

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

Je kunt gewoon het deb-pakket downloaden en dat direct installeren:

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

N.B. het is hetzelfde deb package voor alle distributies.

Vragen / opmerkingen / verbetering graag via Launchpad Neem contact met mij op link

Hoe te gebruiken:

sudo banish404

Het script maakt automatisch een back-up van uw bronnen voordat wijzigingen worden aangebracht in /etc/apt

Meer informatie

Hier is een foutenrapport over de updatebeheerder om dit probleem op te lossen:

Als u deze problemen zonder PPA's krijgt, bekijkt u deze vraag:


285
2018-01-05 00:15



Nu gebruiken om hopelijk mijn probleem op te lossen - voor uw gemoedsrust zou het geweldig zijn als u een link [of een korte sectie] zou kunnen toevoegen voor meer informatie over het 'terugzetten' van de back-up, indien nodig - Louis Maddox
Als u deze ppas verwijdert, betekent dit dat u de relevante updates ergens anders vandaan moet halen? - Addem
@fossfreedom Waarom werkt dit niet boven 15.04? - Mark Yisri
Ik heb de verwijdering van het script gebruikt voor ubutu 14.04. Het werkte prima. Hartelijk bedankt. - Mohit Mittal
Opmerking - scriptoplossing werkt niet op Ubuntu Server zonder een scherm in te stellen (Getest op 14.04 LTS). - cerd


Geautomatiseerde verwijdering van 404 Niet gevonden PPA's via script

Dit is een script om automatisch alle 404 niet gevonden PPA's.Copy de onderstaande code te verwijderen en deze in een bestand te plakken en noem het als 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

Geef execute toestemming voor het script

sudo chmod +x ppa-remove

Kopieer en plak de ppa-remove bestand in /usr/bin directory Zodat u er overal vandaan toegang toe heeft.

Gebruik

sudo ppa-remove

Scriptbeschrijving

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

tput setaf 6 opdracht geeft de tekstkleur van de terminal groen weer. Vervolgens wordt "Bezig met initialiseren .. Wacht" in groene kleur weergegeven.

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;

    Zowel stdout als stderr van het commando sudo apt-get update zijn geschreven naar het bestand /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 zoekt naar de regel die bestaat W:,launchpad,404 in de /tmp/update.txt file.If het gevonden dat dan in die regel (stdout) alle letters vanaf de 26e locatie in kolom5 worden weergegeven. Deze standaarduitvoer is omgeleid (geschreven) naar de /tmp/awk.txthet dossier.

Bijvoorbeeld:

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

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

in die 5e kolom start vanaf 26e karakter- pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Deze regel hierboven is opgeslagen in /tmp/awk.txt file.Nu het volgende commando,

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

awk zoek naar de kolom1 en kolom2 met het scheidingsteken / waar de kolom1 en kolom2 aaneengeschakeld zijn door /van de /tmp/awk.txt bestand en vervolgens omleidt (geschreven) de stdout naar /tmp/awk1.txt het dossier.

Nu /tmp/awk1.txt bestand bevat pitti/postgresql lijn.

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

Als er twee dezelfde lijnen zijn, unique opdracht geeft (stdout) alleen één regel weer. Op die ene regel is geschreven /tmp/awk2.txt Tenslotte /tmp/awk2.txt bestaat uit unieke PPA-namen.

tput sgr0

Met deze opdracht wordt de kleur van terminaltekst wit.

Tenslotte if voorwaardelijke uitspraken worden uitgevoerd. if [ -s /tmp/awk2.txt ] controleer of de inhoud van het bestand /tmp/awk2.txt wel of niet wordt weergegeven. Als dat zo is, dan is de eerste regel vereist /tmp/awk2.txt en wordt uitgevoerd sudo add-apt-repository -r ppa:$line command.It gaat verder tot de laatste regel.

Zo nee, dan betekent dit dat er geen inhoud is. Dus staat er "Geen PPA's die moeten worden verwijderd".

screenshots

enter image description here

enter image description here


49
2018-03-10 18:08



/ usr / bin / ppa-remove: regel 32: syntaxisfout: onverwacht einde van bestand - Shravan40


U krijgt deze fouten omdat uw PPA-opslagplaatsen geen pakketten bieden voor uw distributie van Ubuntu (dwz; quantal).

Bekijk de volgende screenshots:

ppa: Petrakis / WDT-main Launchpad logo

wdt-main

ppa: Screenlets / ppa Launchpad logo

screenlets

U kunt zien dat de map voor quantal ontbreekt en daarom krijg je 404 Not Found Error Messages.

Om van deze berichten af ​​te komen, moet u deze PPA-repository's van uw systeem verwijderen. Volg deze vraag over het verwijderen van PPA's:


Hoe dit te onderzoeken en tot deze conclusie te komen?

Dit zijn de foutmeldingen die u ontvangt 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

Open uw browsertab en open de koppeling die 404 niet gevonden fouten bevat. In dit geval http://ppa.launchpad.net/petrakis/ en ga dieper volgens de link die fouten oplevert. Je zou kunnen zien wat het werkelijke probleem is.


20
2018-02-16 18:59





Het meest waarschijnlijke dat het gebeurt, is dat de PPA niet langer wordt onderhouden en moet worden verwijderd. U kunt dit gewoon doen met behulp van:

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

17
2017-12-23 18:08



dit heeft zojuist een dubbele vraag opgeslagen. Ik had de body van mijn Q gereed en net toen ik mijn titel begon te typen vond ik de link .. waarom houden ze niet alles op een plaats! er staan ​​er een paar in /etc/apt/sources.list waar ik het deed, maar ik wist niet dat ik naar binnen moest kijken /etc/apt/sources.list.d/ ook .. bedankt .. - precise
dit en het toevoegen van de juiste nieuwe PPA bleek de beste (enige werkende) oplossing voor mij te zijn. - markus-tharkun


Kies Oudere repository

Als je de pakketten echt nodig hebt dat repository, kunt u de mirrors van een oudere release gebruiken.

Houd er echter rekening mee dat niet alle oudere releases zijn achterwaarts compatibel; sommigen van hen veroorzaken conflicten met uw hoofdpakketrepository.

Het enige dat u kunt doen als het conflicteert, is ofwel bouwen vanaf de bron of wachten tot de provider de repository vrijgeeft voor uw Ubuntu-versie. We weten het niet precies wanneer de pakketaanbieders hun pakket voor onze versie zullen vrijgeven, bent u degene die de controle heeft over hun repository voor uw release.

Dit kan worden gebruikt met elke Debian-gebaseerde repository. Er is echter geen garantie dat dit succesvol zal zijn.

Stappen

  1. Doe het gewoon sudo apt update na het toevoegen van PPA / repository. U kunt opmerken dat er 404 fouten zijn tijdens het updaten; negeer dit gewoon. 404 Error
  2. Open de repository-map die 404-fout veroorzaakt met uw browser; in dit geval is het dat https://dl.winehq.org/wine-builds/ubuntu. Meestal zijn beschikbare releases gelokaliseerd in dists/. Mirrors
  3. Nadat u het hebt gevonden, opent u Software en updates en vervangt u uw releasaam door de beschikbare release; bij voorkeur laatste of LTS één. Vervang het gedeelte 'Distributie' in binaire en broncodespiegels. In dit geval, ben ik aan het vervangen bionic met artful. enter image description here
  4. Do sudo apt update nog een keer.
  5. Je bent klaar! U hebt nu geen 404-fouten meer bij het bijwerken van uw pakketlijsten. enter image description here
  6. Wanneer de pakketten voor uw Ubuntu-versie zijn vrijgegeven, herhaalt u stap 3 en 4 door het gedeelte 'Distributie' te vervangen door uw distributienaam.

4
2018-05-23 06:07





Merk op dat het mij al overkwam en dat ik uit deze situaties was. En het werkte ook voor een vriend van mij. Zelfs als ik niet kan uitleggen waarom, is er iets dat dit probleem heeft opgelost:

  1. Schakel al uw PPA's uit;
  2. Rennen sudo apt-get update vanaf terminal;
  3. Schakel uw PPA's weer in;
  4. Rennen sudo apt-get update;

En opeens werkte het. Vraag me niet waarom.


2
2017-11-19 20:22



Voor mij geen verschil gemaakt. Nog steeds 404s. - kwoxer
Ik heb enkele ongewenste PPA's uitgeschakeld en geprobeerd sudo apt-get update en het werkte perfect. - Shashanth


Als u een 404-fout krijgt bij het proberen om beveiligings- of systeembestanden te verkrijgen van een officiële repository (geen PPA), kunt u een andere mirror kiezen om dit probleem op te lossen.

Je kan of:

EEN) bepaal een Handmatig door te beoordelen deze lijst en het kiezen van de meest recente spiegel. (mogelijk wilt u rekening houden met andere factoren zoals afstand en bandbreedte) of

B) Kies er automatisch een.

Hoe dan ook, u kunt beginnen met de Software & Updates-toepassing, zoals hieronder wordt weergegeven: Selecteer vervolgens Downloaden gevolgd door Overige. Vervolgens kunt u handmatig de gewenste mirror uit de lijst kiezen of op de knop Select best Server klikken, die een aantal tests uitvoert en de beste server voor u kiest, afhankelijk van de huidige omstandigheden.

SnU


1
2018-01-15 14:57





Ik heb elk mogelijk antwoord geprobeerd, maar de enige oplossing was om het te kopiëren Ubuntu 16.04 Xenial-standaard /etc/apt/sources.list  bestand naar mijn /etc/apt/sources.list.

bronnen: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Dat heeft mijn Linux bewaard.


0
2018-05-03 11:06