PPA kullanırken veya paket listelerimi güncellerken 404 hatasını nasıl düzeltirim?


266

PPA sürekli çevrimdışı görünüyor. Ne zaman kullansam sudo apt-get update, bu hata gösteriliyor:

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

Bu hataları nasıl düzeltirim?


Bu ana "Alınamadı" yanıtlarından biri gibi göründüğü için, bunun burada kaynakların Ubuntu "ortak" URL'leriyle de olabileceğini belirtmek istiyorum. hata olup olmadığını görmek için hatalarınızı kontrol edin ve yorum yapmayı deneyin. Quetzal’den yükseltme konusunda bu sorunla karşılaştım (ve çözüm).
joseph_morris

Yanıtlar:


305

Otomatik kaldırma

Ubuntu 15.04’ten önceki tüm ubuntu sürümleri için rahatsız edici yazılım kaynaklarını kaldırmak için komut dosyasıyla bu yolun altına atlayın

404 hataları nelerdir

404 veya Bulunamadı hata mesajı, müşterinin sunucuyla iletişim kurabildiğini belirten bir HTTP standart yanıt kodudur, ancak sunucu istenenleri bulamadı.

Kullanıcılar, bozuk veya ölü bir bağlantıyı izlemeye çalıştıklarında, web sitesi barındırma sunucusu genellikle "404 - Sayfa Bulunamadı" web sayfasını oluşturur.

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

Genellikle, üç ana alan bu hatalara neden olur. update-manager

  1. Bir kullanıcı az önce yeni sürdü ve artık mevcut olmayan bir PPA yazılım kaynağını yeniden etkinleştirdi görüntü tanımını buraya girin
  2. Bir kullanıcı yanlış olarak yeni bir yazılım kaynağını elle yazdı görüntü tanımını buraya girin
  3. Bir PPA eklendi, fakat bakımdan sonra PPA'nın bir kısmını / tamamını silmiş

bu yazılım kaynakları nerede

PPA'lar tipik olarak iki konumdan birine kaydedilir

  1. /etc/apt/sources.list
  2. uygun bir şekilde adlandırılmış bir dosyada, /etc/apt/sources.list.d/örneğin .list dosya uzantılı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ündeki a işaretinin, yorumlandığı ve paket yöneticisi tarafından kontrol edilmediği anlamına gelir.

Bu hatalar nasıl giderilir

Genellikle, sudo apt-get updatebir terminalden koşarsanız veya Yenile düğmesine bastıktan sonra Update Manager'daki ayrıntılar düğmesine tıklarsanız aşağıdaki gibi hatalar görürsünüz:

görüntü tanımını buraya girin

Eğer hata bir PPA'dan kaynaklanıyorsa - genellikle benzer şekilde adlandırılmış PPA'yı, hata mesajında ​​gösterilen URL ile çözmek.

görüntü tanımını buraya girin

404 hatası, eklenmiş olan ek bir depodan kaynaklanıyorsa, rahatsız edici depoyu yorumlamak için satırın başına karakter /etc/apt/sources.listeklemek daha kolay.#

gksu gedit /etc/apt/sources.list

görüntü tanımını buraya girin

Daha fazla bilgi

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

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


Çok teşekkür ederim.
Andrews B Anthony,

51

404'ün Otomatik Olarak Kaldırılması PPA'lar komut dosyasıyla bulunamadı

Bu, tüm 404 PPA Bulunamadı otomatik olarak kaldırmak için bir komut dosyasıdır. Aşağıdaki kodu kopyalayın ve bir dosyaya yapıştırın ve olarak adlandırın 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

Komut dosyasına yürütme izni ver

sudo chmod +x ppa-remove

ppa-removeDosyayı kopyalayıp /usr/bindizine yapıştırın. Böylece , istediğiniz yerden erişebilirsiniz.

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şile dönüştürür. Sonra yeşil renkte "Başlatılıyor .. Lütfen Bekleyin" mesajı görüntülenir.

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;

    Komutun hem stdout'u hem de stderr'ı sudo apt-get updatedosyaya yazılır./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 oluşur hattı arar W:, launchpad, 404içinde /tmp/update.txtfile.If daha sonra o çizgide standart çıktı yeniden yönlendirildi column5.This içinde 26 konumdan başlayarak (stdout) bütün harfleri görüntüler bulundu etmek (yazılı) /tmp/awk.txtdosyası.

Ö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ütun 26 karakterden başlıyor. pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Bu yukarıdaki satır /tmp/awk.txtdosyaya kaydedildi.

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

awk sınırlayıcısıyla column1 ve Sütun2 dışarı findout /sütun1 ve sütun2 tarafından birleştirilmiş /gelen /tmp/awk.txtdosyaya ve sonra (yazılı) stdout'u yönlendirir /tmp/awk1.txtdosya.

Şimdi /tmp/awk1.txtdosya pitti/postgresqlsatır içeriyor .

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

İki aynı satır varsa, uniquekomut yalnızca (stdout) tek satır görüntüler. Bu tek satır son /tmp/awk2.txt olarak /tmp/awk2.txtbenzersiz PPA adlarından oluşur.

tput sgr0

Bu komut, terminal metninin rengini beyaz olarak değiştirir.

Sonunda ifşartlı ifadeler yürütülür. if [ -s /tmp/awk2.txt ]/tmp/awk2.txt dosyasının içeriğini kontrol edin ya da sunun. Evet ise, ilk satırı alır /tmp/awk2.txtve sudo add-apt-repository -r ppa:$linekomutu çalıştırır . Son satıra kadar devam eder.

Hayır ise, içerik olmadığı anlamına gelir. "Çıkarılacak PPA yok" yazıyor.

Ekran görüntüleri

görüntü tanımını buraya girin

görüntü tanımını buraya girin


/ usr / bin / ppa-remove: satır 32: sözdizimi hatası: beklenmeyen dosya sonu
Shravan40

21

Bu hataları alıyorsunuz, çünkü PPA depolarınız Ubuntu dağıtımınız için paket sunmuyor (yani; quantal).

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

PPA: Petrakis / WDT-ana Launchpad logosu

WDT-ana

ppa: screenlets / ppa Launchpad logosu

screenlets

Sen dizin için olduğunu görebilirsiniz quantaleksik ve dolayısıyla elde olduğunu 404 Not Found Error Messages.

Bu mesajlardan kurtulmak için bu PPA havuzlarını sisteminizden kaldırmak zorundasınız. PPA'ların nasıl kaldırılacağı ile ilgili şu soruyu izleyin:


Bu nasıl araştırılır ve bu sonuca varılır?

Bunlar, wdt-mainPPA için aldığınız hata mesajlarıdır :

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ınızın 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 inin. Asıl sorunun ne olduğunu görebileceksiniz.


17

Gerçekleşmesi en muhtemel olan, PPA'nın artık muhafaza edilmemesi ve kaldırılması gerektiğidir. Bunu sadece kullanarak yapabilirsiniz:

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

3
bu sadece gönderilmek üzere tekrarlanan bir soruyu kurtardı .. Q'mun bedenine hazırım ve tıpkı bağlantıyı yazmaya başladığımda bağlantıyı buldum .. neden tüm listeyi bir yerde tutmuyorlar! Orada bazı listelenen /etc/apt/sources.listı kontrol etti nerede ama ben bakmak zorunda bilmiyordum /etc/apt/sources.list.d/.. teşekkürler .. çok
kesin

bu ve daha sonra uygun yeni PPA'nın eklenmesi benim için en iyi (sadece çalışan) çözüm olduğu ortaya çıktı.
markus-tharkun,

4

Eski Depoyu Seçin

Eğer paketleri gerçekten ihtiyacınız varsa o depo, daha eski sürümden aynalar kullanabilirsiniz.

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

Çakıştığında yapabileceğiniz tek şey ya kaynaktan inşa etmek ya da sağlayıcı Ubuntu sürümünüz için depoyu yayımlayana kadar beklemektir. Paket sağlayıcıların sürümümüz için paketlerini ne zaman yayınlayacaklarını tam olarak bilmiyoruz , bu nedenle sürümleriniz için depolarını kontrol etmekten sorumlu olan sizsiniz.

Bu herhangi bir Debian tabanlı depo ile kullanılabilir. Ancak bunun başarılı olacağının garantisi yoktur.

adımlar

  1. Her zaman sudo apt updatePPA / depo ekledikten sonra yapın . Güncelleme sırasında 404 hata olduğunu fark edebilirsiniz; Sadece bunu görmezden gel. 404 hata
  2. Tarayıcınızda 404 hatasına neden olan depo dizinini açın; bu durumda öyle https://dl.winehq.org/wine-builds/ubuntu. Genellikle, mevcut sürümler içinde bulunur dists/. Aynalar
  3. Bulduktan sonra, Yazılım ve Güncellemeler'i açın ve sürüm adınızı mevcut sürümle değiştirin; tercihen en son veya LTS olanı. İkili ve kaynak kodlu aynalardaki 'Dağıtım' bölümünü değiştirin. Bu durumda, ben değiştiriyorum bionicile artful. görüntü tanımını buraya girin
  4. Do sudo apt updatetekrar.
  5. Sen bittin! Paket listelerinizi güncellerken artık 404 hata daha yok. görüntü tanımını buraya girin
  6. Ubuntu sürümünüzün paketleri yayınlandığında, 'Dağıtım' bölümünü dağıtım adınızla değiştirerek 3. ve 4. adımları tekrarlayın.

2

Bana zaten oldu ve bu durumların dışında olduğumu unutmayın. Ve aynı zamanda bir arkadaşım için çalıştı. Nedenini açıklayamamakla birlikte, bu sorunu çözen bir şey var:

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

Ve aniden işe yaradı. Bana nedenini sorma.


Benim için fark yaratmadı. Hala 404s.
kwoxer

İstenmeyen bazı PPA'ları devre dışı bıraktım ve denedim sudo apt-get updateve kusursuz çalıştı.
Shashanth

1

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

Ya yapabilirsiniz:

A) Birini bu listeyi gözden geçirerek ve en güncel yansıtmayı seçerek manuel olarak belirleyin . (mesafe ve bant genişliği gibi diğer faktörleri dikkate almak isteyebilirsiniz) veya

B) Bir tanesini otomatik seç.

Her iki şekilde de aşağıda gösterildiği gibi Yazılım ve Güncellemeler uygulamasıyla başlayabilirsiniz: Ardından İndir ve ardından Diğer öğesini seçin. Ardından listeden istediğiniz aynayı manuel olarak seçebilir veya bazı testleri yürütecek ve mevcut koşullara bağlı olarak sizin için en iyi sunucuyu seçecek olan En iyi Sunucu Seç düğmesini tıklayabilirsiniz.

Snu


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.