PPA kullanırken veya paket listemi güncelleştirirken 404 hatası nasıl giderilir?

240

PPA sürekli çevrimdışı görünüyor. % Co_de% kullandığımda, bu hata gösterilir:

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

Bu hataları nasıl düzeltirim?

    
sordu Pedro 14.10.2011 03:16

8 cevap

285

Otomatik kaldırma

Ubuntu 15.04'ten önceki tüm ubuntu sürümleri için sorunlu yazılım kaynaklarının kaldırılmasına yönelik betik bir yol için bu yanıtın alt kısmına geçin

404 hatası nedir

  

404 veya Bulunamadı hata iletisi, bir HTTP standart yanıt kodudur   İstemcinin sunucu ile iletişim kurduğunu belirten,   ancak sunucu talep edileni bulamadı.

     

Web sitesi barındırma sunucusu genellikle "404 - Sayfa Değil" üretecek   Kullanıcıların kırık veya ölü bir bağlantıyı takip etmeye çalıştığı web sayfası bulundu.

Güncelleme yöneticisinde bu hataların nedenleri nelerdir?

Genellikle, üç ana alan bu hataların update-manager

olmasına neden olur.
  1. Bir kullanıcı yeni sürüme geçirdi ve artık mevcut olmayan bir PPA yazılım kaynağını yeniden etkinleştirdi
  2. Bir kullanıcı el ile yeni bir yazılım kaynağını yanlış yazdı
  3. Bir PPA eklendi, ancak sürdürücü daha sonra PPA'nın bir kısmını / tümünü sildi

bu yazılım kaynakları nerede

PPA'lar genellikle iki konumdan birinde kaydedilir

  1. /etc/apt/sources.list
  2. /etc/apt/sources.list.d/ örneğinde .list dosya uzantısına sahip uygun şekilde adlandırılmış bir dosyada, örneğin webupd8team-jupiter-natty.list

Bu liste dosyası genellikle şunları içerir:

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

Bir metin satırının ön tarafındaki # 'in, yorumlandığı ve paket yöneticisi tarafından kontrol edilmediği anlamına gelir.

Bu hataları nasıl yok edersiniz

Genellikle, bir terminalden sudo apt-get update çalıştırırsanız veya yenileme düğmesine bastıktan sonra Güncelleme Yöneticisi'ndeki ayrıntılar düğmesini tıklarsanız, aşağıdaki gibi hatalar görürsünüz:

Hata bir PPA'dan kaynaklanıyorsa - genellikle, benzer bir şekilde adlandırılan PPA'nın hata mesajında ​​gösterilen URL ile yazılmaması, bunu çözecektir.

404 hatası, /etc/apt/sources.list öğesine eklenmiş bir ek depodan kaynaklanıyorsa, # karakterinin satırın başlangıcına eklenmesini kolaylaştırmak daha kolay olur, çünkü rahatsız edici depoyu yorumlamak daha kolay olur.

gksu gedit /etc/apt/sources.list

15.04'ten önceki tüm ubuntu sürümleri için komut dosyası kaldırma

404 hatasını gösteren PPA'ları ve Yazılım Kaynaklarını kontrol eden hızlı bir komut dosyası yazdım. Bu, 15.04'ten önceki tüm Ubuntu sürümleri için çalışır. 15.04 ve üstü için yukarıda açıklanan manuel yöntemleri uygulayın.

Onun PPA'mda:

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

Yalnızca borç paketini indirebilir ve doğrudan yükleyebilirsiniz:

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. tüm dağıtımlar için aynı deb paketi.

Sorular / Yorumlar / İyileştirme, lütfen Launchpad İletişim Me bağlantısıyla

Nasıl kullanılır?

sudo banish404

Komut dosyası, değişiklik yapmadan önce kaynaklarınızı otomatik olarak yedekler - /etc/apt

içinde bulunur.

Daha fazla bilgi

İşte bu sorunu çözmek için güncelleme yöneticisi ile ilgili bir hata raporu:

Bu sorunları PPA olmadan alıyorsanız, şu soruya göz atın:

verilen cevap fossfreedom 05.01.2012 01:15
49

Otomatikleştirilmiş 404 Kaldırma PPA'ları komut dosyası aracılığıyla bulunamadı

Bu, tüm 404 Bulunamadı PPA's.The kodu aşağıdaki kodu otomatik olarak kaldırmak için bir komut dosyasıdır ve bir dosyaya yapıştırın ve ppa-remove olarak adlandırın.

#!/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(,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print "/" }' /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

Komut dosyasına yürütme izni ver

sudo chmod +x ppa-remove

ppa-remove dosyasını kopyalayıp /usr/bin dizinine yapıştırın. Her yerden erişebildiğiniz için.

Kullanım

sudo ppa-remove

Komut Dosyası Açıklaması

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

tput setaf 6 komutu, terminal metni rengini yeşil renge dönüştürür. Ardından "Initializing ..Lütfen bekleyin" yeşil renkte görüntülenir.

sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr(,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt; uniq /tmp/awk1.txt > /tmp/awk2.txt
  1. sudo apt-get update >> /tmp/update.txt 2>&1;

    Her iki stdout ve stderr komutunun sudo apt-get update , /tmp/update.txt dosyasına yazılır

  2. awk '( /W:/ && /launchpad/ && /404/ ) { print substr(,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print "/" }' /tmp/awk.txt > /tmp/awk1.txt;

Awk, W: dosyasında launchpad , 404 , /tmp/update.txt değerinden oluşan satırı arar. Bu satırda, o satırda 26 konumundan başlayan tüm harflerin (stdout) görüntülendiğini tespit etti. column5.This standart çıktı /tmp/awk.txt dosyasına yönlendirildi (yazıldı).

Örneğin:

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

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

bu 5. sütunda 26 karakterden pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

başlıyor

Yukarıdaki satır /tmp/awk.txt dosyasına kaydedildi. Şimdi bir sonraki komut

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

sütunu1 ve sütun2, / 'si ile sütun1 ve sütun2, / dosyasından /tmp/awk.txt ile birleştirildiğini ve% st_ut dosyasını /tmp/awk1.txt dosyasına yönlendirdiğini ( /tmp/awk1.txt dosyasına) yazdı.

Artık pitti/postgresql dosyası uniq /tmp/awk1.txt > /tmp/awk2.txt satırı içeriyor.

unique

İki aynı çizgi varsa, /tmp/awk2.txt komutu yalnızca tek satır görüntüler (bu satır). /tmp/awk2.txt 'ye tek satır yazılmıştır. Son olarak, if benzersiz PPA adlarından oluşur.

tput sgr0

Bu komut, terminal metninin rengini beyaza dönüştürür.

Son olarak, if [ -s /tmp/awk2.txt ] koşullu ifadeleri yürütülür. /tmp/awk2.txt /tmp/awk2.txt dosyasının içeriği olup olmadığını kontrol eder. Evet ise, ilk satırı sudo add-apt-repository -r ppa:$line 'den alır ve %code% komutunu çalıştırır. Son satıra kadar devam eder.

Hayır ise, herhangi bir içerik olmadığı anlamına gelir. "Hiçbir PPA'nın kaldırılması" yazıyor.

Ekran

    
verilen cevap Avinash Raj 10.03.2014 19:08
20

Bu hataları alıyorsunuz çünkü PPA depolarınız Ubuntu dağıtımınız için paket sağlamıyor (örn; quantal ).

Aşağıdaki ekran görüntülerine bakın:

ppa: petrakis / wdt-main

ppa: screenlets / ppa

quantal dizininin eksik olduğunu ve dolayısıyla 404 Not Found Error Messages aldığınızı görebilirsiniz.

Bu mesajlardan kurtulmak için bu PPA depolarını sisteminizden kaldırmanız gerekir. PPA'ları nasıl kaldıracağınız konusunda şu soruyu izleyin:

Bunu nasıl araştırırsınız ve bu sonuca varırız?

Bunlar wdt-main PPA için aldığınız hata mesajları:

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

Tarayıcı sekmesini açın ve 404 Bulunamadı Hataları veren bağlantıyı açın. Bu durumda http://ppa.launchpad.net/petrakis/ ve hata veren linke göre daha derine iner. Asıl sorunun ne olduğunu görebileceksiniz.

    
verilen cevap Aditya 16.02.2013 19:59
17

Olması muhtemel en muhtemel şey, PPA'nın daha uzun sürmemesi ve kaldırılması gerektiğidir. Bunu sadece şunu kullanarak yapabilirsiniz:

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

Eski Depoyu Seçin

Paketlere bu depodan gerçekten ihtiyacınız varsa, eski sürümdeki aynaları kullanabilirsiniz.

Ancak, tüm eski sürümlerin geriye dönük olarak uyumlu olmadığını unutmayın; Bazıları ana paket deponuzla çakışmalara neden olur.

Çakışma olduğunda yapabileceğiniz tek şey ya kaynak kodludur ya da sağlayıcı Ubuntu sürümünüz için depoyu serbest bırakana kadar beklemenizdir. Paket sağlayıcılar paketimizi sürümümüz için serbest bıraktığında tam olarak olduğunu bilmiyoruz. Bu nedenle, sürümünüz için depolarını kontrol etmek için sorumlu olan sizsiniz.

Bu, herhangi bir Debian tabanlı depo ile kullanılabilir. Bununla birlikte, bunun başarılı olacağına dair bir garanti yoktur.

Adım

  1. PPA / deposu ekledikten sonra sudo apt update alış yapın. Güncelleme sırasında 404 hatası olduğunu fark edebilirsiniz; Sadece bunu görmezden gel.
  2. Tarayıcınızla 404 hatasına neden olan depo dizinini açın; bu durumda https://dl.winehq.org/wine-builds/ubuntu . Genellikle, kullanılabilir sürümler dists/ bulunur.
  3. Bulunduktan sonra, Software & amp; Güncellemeler yapın ve sürüm adınızı kullanılabilir sürümle değiştirin; tercihen en son veya LTS bir. 'Dağıtım' bölümünü ikili ve kaynak kod aynalarında değiştirin. Bu durumda, bionic 'si artful ile değiştiriyorum.
  4. sudo apt update öğesini tekrar yapın.
  5. İşin bitti! Artık paket listelerinizi güncellerken artık 404 hatasının yok.
  6. Ubuntu sürümünüzün paketleri serbest bırakıldığında, 'Dağıtım' bölümünü dağıtım adınızla değiştirerek 3. ve 4. adımı tekrarlayın.
verilen cevap Aryo Adhi 23.05.2018 08:07
2

Bana zaten geldiğini ve bu durumların dışında olduğumu unutmayın. Ve ayrıca bir arkadaşım için çalıştı. Nedenini açıklayamasa bile, bu problemi çözen bir şey var:

  1. Tüm PPA'larınızı devre dışı bırakın;
  2. Terminalden sudo apt-get update çalıştır;
  3. PPA'larınızı tekrar etkinleştirin;
  4. sudo apt-get update çalışmasını çalıştırın;

Ve aniden çalıştı. Bana neden sorma.

    
verilen cevap Danilo 19.11.2013 21:22
1

Resmi bir depodan (PPA değil) güvenlik veya sistem dosyalarını elde etmeye çalışırken 404 hatası alıyorsanız, bu sorunu çözmek için farklı bir ayna seçebilirsiniz.

Şunları yapabilirsiniz:

A) bu listeyi inceleyerek ve en güncel olanı seçerek el ile bir tane belirleyin. ayna. (mesafe ve bant genişliği gibi diğer faktörleri dikkate almak isteyebilirsiniz) veya

B) Otomatik olarak bir tane seçin.

Her iki şekilde de Yazılım & amp; Güncelleme uygulaması aşağıda gösterildiği gibidir: Ardından İndir ve ardından Diğer seçeneğini seçin. Ardından, istediğiniz listeyi manuel olarak seçebilir veya bazı testleri çalıştıracak ve geçerli koşullara bağlı olarak sizin için en iyi sunucuyu seçecek olan En İyi Sunucu Seç düğmesini tıklayabilirsiniz.

    
verilen cevap Elder Geek 15.01.2017 15:57
0

Her olası cevabı denedim, ancak tek çözüm Ubuntu 16.04 Xenial default /etc/apt/sources.list kopyalamaktı. /etc/apt/sources.list dosyama.

Kaynaklar: İşte

Bu benim Linux'umu kurtardı.

    
verilen cevap Damjan Pavlica 03.05.2018 13:06

Etiketlerdeki diğer soruları oku