Como posso corrigir um erro 404 ao usar um PPA ou atualizar minhas listas de pacotes?

257

O PPA parece estar constantemente offline. Sempre que eu uso sudo apt-get update , este erro é mostrado:

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

Como corrijo esses erros?

    
por Pedro 14.10.2011 / 03:16

8 respostas

300

Remoção automática

pule para o final desta resposta para obter uma maneira de remover scripts de fontes de software ofensivas para todas as versões do ubuntu anteriores ao Ubuntu 15.04

O que são erros 404

The 404 or Not Found error message is a HTTP standard response code indicating that the client was able to communicate with the server, but the server could not find what was requested.

The web site hosting server will typically generate "404 - Page Not Found" web page, when users attempts to follow a broken or dead link.

Quais são as causas desses erros no gerenciador de atualização

Normalmente, três áreas principais causam esses erros em update-manager

  1. Um usuário acabou de atualizar e reativou uma fonte de software PPA que não existe mais
  2. Umusuáriodigitoumanualmenteumanovafontedesoftwareincorretamente
  3. Um PPA foi adicionado, mas o mantenedor excluiu posteriormente alguns / todos os PPA

onde estão estas fontes de software

Os PPAs normalmente são salvos em um dos dois locais

  1. /etc/apt/sources.list
  2. em um arquivo nomeado apropriadamente com uma extensão de arquivo .list em /etc/apt/sources.list.d/ , por exemplo, webupd8team-jupiter-natty.list

Este arquivo de lista normalmente contém:

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

Observe que # na frente de uma linha de texto significa que ela está comentado e não é verificada pelo gerenciador de pacotes.

Como eliminar esses erros

Normalmente, se você executar sudo apt-get update de um terminal ou clicar no botão de detalhes no Update Manager após pressionar o botão de atualização, verá erros como:

SeoerrofordevidoaumPPA,geralmente,desmarcaroPPAcomomesmonomecomaURLmostradanamensagemdeerroresolveráisso.

Se o erro 404 foi devido a um repositório adicional que foi adicionado ao /etc/apt/sources.list , será mais fácil adicionar o caractere # ao início da linha para comentar o repositório incorreto, por exemplo

gksu gedit /etc/apt/sources.list

Maisinformações

Aquiestáumrelatóriodeerrosnogerenciadordeatualizaçãopararesolveresteproblema:

  • link

Se você está tendo esses problemas sem PPAs, confira esta pergunta:

por fossfreedom 05.01.2012 / 01:15
50

Remoção automática de 404 PPAs não encontrados por meio do script

Este é um script para remover automaticamente todos os 404 PPAs não encontrados. Copie o código abaixo e cole-o em um arquivo e nomeie-o como 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

Conceder permissão de execução ao script

sudo chmod +x ppa-remove

Copie e cole o arquivo ppa-remove em /usr/bin directory.So que você pode acessá-lo de qualquer lugar.

Uso

sudo ppa-remove

Descrição do script

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

tput setaf 6 transforma a cor do texto do terminal em verde. Depois, exibe "Initializing ..Please Wait" na cor verde.

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;

    A stdout e stderr do comando sudo apt-get update são gravadas no arquivo /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;

O awk procura a linha que consiste em W: , launchpad , 404 no arquivo /tmp/update.txt . Se ele descobrir que, nessa linha, exibirá (stdout) todas as letras a partir do 26º local na coluna 5.Esta saída padrão foi redirecionada (escrita) para o arquivo /tmp/awk.txt .

Por exemplo:

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

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

nessa quinta coluna a partir do 26º caractere - pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Esta linha acima foi armazenada em /tmp/awk.txt file.Now o próximo comando,

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

awk descubra a coluna1 e a coluna2 com o delimitador / em que a coluna1 e a coluna2 são concatenadas por / do arquivo /tmp/awk.txt e, em seguida, redireciona (gravada) o stdout para o arquivo /tmp/awk1.txt .

Agora o arquivo /tmp/awk1.txt contém pitti/postgresql line.

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

Se houver duas linhas iguais, o comando unique exibe (stdout) apenas uma linha. Essa única linha foi gravada em /tmp/awk2.txt Finalmente, /tmp/awk2.txt consiste em nomes exclusivos de PPA.

tput sgr0

Este comando muda a cor do texto do terminal para branco.

Finalmente, as declarações condicionais if serão executadas. if [ -s /tmp/awk2.txt ] verifica o conteúdo do arquivo /tmp/awk2.txt apresentado ou não.Se sim, então pega a primeira linha de /tmp/awk2.txt e executa o comando sudo add-apt-repository -r ppa:$line . Continua até a última linha.

Se não, significa que não há conteúdo. Por isso, diz "Nenhum PPA a ser removido".

Screenshots

    
por Avinash Raj 10.03.2014 / 19:08
21

Você está recebendo esses erros porque seus repositórios PPA não fornecem pacotes para a sua distribuição do Ubuntu (ou seja, quantal ).

Veja as seguintes capturas de tela:

ppa: petrakis / wdt-main

ppa: screenlets / ppa

Você pode ver que o diretório para quantal está faltando e, portanto, você está obtendo 404 Not Found Error Messages .

Para se livrar dessas mensagens, você precisa remover esses repositórios PPA do seu sistema. Siga esta pergunta sobre como remover os PPAs:

Como investigar isso e chegar a essa conclusão?

Estas são as mensagens de erro que você recebe para 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

Abra a guia do navegador e abra o link que fornece erros 404 não encontrados. Neste caso http://ppa.launchpad.net/petrakis/ e vá mais fundo conforme o link que dá erros. Você seria capaz de ver qual é o problema real.

    
por Aditya 16.02.2013 / 19:59
17

O mais provável é que o PPA não seja mais mantido e precise ser removido. Você pode fazer isso usando apenas:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
    
por Braiam 23.12.2013 / 19:08
4

Escolha um repositório mais antigo

Se você realmente precisa dos pacotes de esse repositório, você pode usar os espelhos de versões mais antigas.

No entanto, observe que nem todas as versões mais antigas são compatíveis com versões anteriores ; alguns deles causam conflitos com o seu repositório principal de pacotes.

A única coisa que você pode fazer quando está em conflito é construir a partir do código-fonte ou esperar até que o provedor libere o repositório para a sua versão do Ubuntu. Não sabemos exatamente quando os provedores de pacotes lançarão seu pacote para nossa versão, então você é o responsável por verificar seu repositório para o seu lançamento.

Isto pode ser usado com qualquer repositório baseado em Debian. No entanto, não há garantia de que isso será bem sucedido.

Etapas

  1. Faça o usual sudo apt update após adicionar o PPA / repositório. Você pode perceber que há erros 404 durante a atualização; apenas ignore isso.
  2. Abraodiretóriodorepositórioquecausaoerro404emseunavegador;Nessecaso,éhttps://dl.winehq.org/wine-builds/ubuntu.Geralmente,asversõesdisponíveisestãolocalizadasemdists/.
  3. Depoisdelocalizado,abraSoftware&Atualizaçõesesubstituaonomedoreleasepelolançamentodisponível;depreferênciamaisrecenteouLTS.Substituaaseção'Distribuição'emespelhosbináriosedecódigo-fonte.Nessecaso,estousubstituindobionicporartful.
  4. Dosudoaptupdatenovamente.
  5. Vocêterminou!Agoravocênãotemmaiserros404aoatualizarsuaslistasdepacotes.
  6. QuandoospacotesdasuaversãodoUbuntuforemlançados,repitaasetapas3e4substituindoaseção"Distribuição" pelo nome da distribuição.
por Aryo Adhi 23.05.2018 / 08:07
2

Note que isso já aconteceu comigo e eu estava fora dessas situações. E também funcionou para um amigo meu. Mesmo não sendo capaz de explicar por que, há algo que resolveu esse problema:

  1. Desative todos os seus PPAs;
  2. Executar sudo apt-get update do terminal;
  3. Ative seus PPAs de volta;
  4. Executar sudo apt-get update ;

E de repente funcionou. Não me pergunte por quê.

    
por Danilo 19.11.2013 / 21:22
1

Se você estiver recebendo um erro 404 ao tentar obter arquivos de segurança ou de sistema de um repositório oficial (não de um PPA), é possível escolher um espelho diferente para resolver esse problema.

Você pode:

A) determine um manualmente revendo esta lista e escolhendo as mais atuais espelho. (você pode querer levar em consideração outros fatores, como distância e largura de banda) ou

B) Escolha um automaticamente.

De qualquer forma, você pode começar com o Software & Atualiza o aplicativo conforme mostrado abaixo: Em seguida, selecione Download de seguido por Outro. Em seguida, você pode escolher manualmente o espelho de sua escolha na lista ou clicar no botão Selecionar melhor servidor, que executará alguns testes e escolherá o melhor servidor para você, dependendo das condições atuais.

    
por Elder Geek 15.01.2017 / 15:57
1

Eu tentei todas as respostas possíveis, mas a única solução foi copiar o padrão Xenial do Ubuntu 16.04 /etc/apt/sources.list arquivo para meu /etc/apt/sources.list .

Fontes: link

Isso salvou meu Linux.

    
por Damjan Pavlica 03.05.2018 / 13:06