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


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?


240
2017-10-14 01:16


origem


Como essa parece ser uma das principais respostas "Falha ao buscar", só quero salientar aqui que isso também pode acontecer com os URLs "parceiros" do Ubuntu no arquivo sources.list; Verifique seus erros para ver se são esses e tente comentá-los. Eu corri para essa questão (e solução) atualizando de Quetzal. - joseph_morris


Respostas:


Remoção automatizada

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

Quais são os erros 404?

A mensagem de erro 404 ou Not Found é um código de resposta padrão HTTP   indicando que o cliente foi capaz de se comunicar com o servidor,   mas o servidor não conseguiu encontrar o que foi solicitado.

O servidor de hospedagem do site normalmente gerará "404 - página não   Encontrado "página da web, quando os usuários tentam seguir um link quebrado ou inativo.

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

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

  1. Um usuário acabou de atualizar e reativou uma fonte de software PPA que não existe mais enter image description here
  2. Um usuário digitou manualmente uma nova fonte de software incorretamente enter image description here
  3. Um PPA foi adicionado, mas o mantenedor excluiu subseqüentemente algum / todo o PPA

onde estão essas fontes de software

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

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

Este arquivo de lista geralmente contém:

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

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

Como eliminar esses erros

Normalmente, se você executar sudo apt-get update a partir de um terminal ou clique no botão de detalhes no Update Manager depois de apertar o botão de atualização, você verá erros como:

enter image description here 

Se o erro for devido a um PPA - normalmente, desmarcar o PPA com o mesmo nome com a URL mostrada na mensagem de erro resolverá isso.

enter image description here 

Se o erro 404 foi devido a um repositório adicional que foi adicionado ao /etc/apt/sources.list então é mais fácil adicionar # caractere para o início da linha para comentar o repositório ofensivo, ou seja,

gksu gedit /etc/apt/sources.list

enter image description here

Remoção com script para todas as versões do ubuntu anteriores a 15.04

Escrevi um script rápido que verifica PPAs e fontes de software que exibem os erros 404. Isso funciona para todas as versões do Ubuntu antes de 15.04. Para 15.04 e posterior, execute os métodos manuais descritos acima.

Está no meu PPA:

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

Você pode simplesmente baixar o pacote deb e instalar isso diretamente:

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. é o mesmo pacote deb para todas as distribuições.

Perguntas / Comentários / Melhoria por favor via Link do Launchpad Contact Me

Como usar:

sudo banish404

O script fará o backup automático de suas fontes antes da modificação - encontrado em /etc/apt

Mais informações

Aqui está um relatório de bug no gerenciador de atualização para resolver este problema:

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


285
2018-01-05 00:15



Usando agora para resolver meu problema - para ficar tranqüilo seria ótimo se você pudesse adicionar um link [ou seção curta] sobre como "restaurar" a partir do backup, se necessário - Louis Maddox
Se você remover esses ppas, isso significa que você precisa receber as atualizações relevantes de algum outro lugar? - Addem
@fossfreedom Por que isso não funciona acima de 15.04? - Mark Yisri
Eu usei a remoção de scripts para o ubutu 14.04. Funcionou muito bem. Muito obrigado. - Mohit Mittal
Nota - a solução de script não funciona no Ubuntu Server sem configurar um monitor (testado em 14.04 LTS). - cerd


Remoção automatizada de 404 PPAs não encontrados por meio de 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

Dar permissão de execução ao script

sudo chmod +x ppa-remove

Copie e cole o ppa-remove arquivo em /usr/bin diretório.Assim, 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"

tput setaf 6 O comando 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;

    Stdout e stderr do comando sudo apt-get update são gravados 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;

Awk procura a linha que consiste em W:,launchpad,404 no /tmp/update.txt file.If ele descobriu que, em seguida, nessa linha ele exibe (stdout) todas as letras a partir do local 26 na coluna 5. Esta saída padrão foi redirecionada (escrita) para o /tmp/awk.txtArquivo.

Por exemplo:

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

5a coloumn - 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 arquivo.Agora o próximo comando,

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

awk descobrir a coluna1 e coluna2 com o delimitador / onde a coluna1 e a coluna2 são concatenadas por /de /tmp/awk.txt arquivo e, em seguida, redireciona (gravada) o stdout para /tmp/awk1.txt Arquivo.

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

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

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

tput sgr0

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

Finalmente if instruções condicionais serão executadas. if [ -s /tmp/awk2.txt ] verifique se o conteúdo do arquivo /tmp/awk2.txt é apresentado ou não.Se houver, então é necessária a primeira linha de /tmp/awk2.txt e executa sudo add-apt-repository -r ppa:$line comando.Ele continua até a última linha.

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

Screenshots

enter image description here

enter image description here


49
2018-03-10 18:08



/ usr / bin / ppa-remove: linha 32: erro de sintaxe: final inesperado do arquivo - Shravan40


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

Veja as seguintes imagens:

ppa: petrakis / wdt-main Launchpad logo

wdt-main

ppa: screenlets / ppa Launchpad logo

screenlets

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

Para se livrar dessas mensagens você tem que 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. Nesse 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.


20
2018-02-16 18:59





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*

17
2017-12-23 18:08



isso apenas salvou uma questão duplicada de ser postada .. Eu tive o corpo do meu Q pronto e assim que comecei a digitar meu título encontrei o link .. por que eles não mantêm toda a lista em um lugar! existem alguns listados em /etc/apt/sources.list onde chequei, mas não sabia que tinha que procurar /etc/apt/sources.list.d/ também .. obrigado .. - precise
isso e, em seguida, adicionando o novo PPA adequado acabou por ser a melhor (só trabalhando) solução para mim. - markus-tharkun


Escolher repositório mais antigo

Se você realmente precisa dos pacotes de aquele repositório, você pode usar os espelhos da versão mais antiga.

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

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 sua versão do Ubuntu. Nós não sabemos exatamente Quando os provedores de pacotes lançarem seu pacote para a nossa versão, você é o encarregado de verificar o repositório para o seu lançamento.

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

Passos

  1. Fazer de costume sudo apt update depois de adicionar o PPA / repositório. Você pode notar que existem 404 erros durante a atualização; apenas ignore isso. 404 Error
  2. Abra o diretório do repositório que causa o erro 404 em seu navegador; neste caso, é https://dl.winehq.org/wine-builds/ubuntu. Geralmente, as versões disponíveis estão localizadas em dists/. Mirrors
  3. Após localizá-lo, abra Software & Updates e substitua o nome do release pelo release disponível; de preferência mais recente ou LTS. Substitua a seção 'Distribuição' em espelhos binários e de código-fonte. Neste caso, estou substituindo bionic com artful. enter image description here
  4. Faz sudo apt update novamente.
  5. Você está feito! Agora você não tem mais erros 404 ao atualizar suas listas de pacotes. enter image description here
  6. Quando os pacotes da sua versão do Ubuntu forem lançados, repita as etapas 3 e 4 substituindo a seção "Distribuição" pelo nome da distribuição.

4
2018-05-23 06:07





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. Desabilite todos os seus PPAs;
  2. Corre sudo apt-get update do terminal;
  3. Ative seus PPAs de volta;
  4. Corre sudo apt-get update;

E de repente funcionou. Não me pergunte o porquê.


2
2017-11-19 20:22



Não fez diferença para mim. Ainda 404s. - kwoxer
Eu desabilitei alguns dos PPAs indesejados e tentei sudo apt-get update e funcionou perfeitamente. - Shashanth


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ê também pode:

A) determinar um manualmente, revendo esta lista e escolhendo o espelho mais atual. (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 aplicativo Software & Updates, 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.

SnU


1
2018-01-15 14:57





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

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

Isso salvou meu Linux.


0
2018-05-03 11:06