Bagaimana saya bisa memperbaiki Kesalahan 404 saat menggunakan PPA atau memperbarui daftar paket saya?

266

PPA tampaknya selalu offline. Setiap kali saya menggunakan sudo apt-get update, kesalahan ini ditampilkan:

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

Bagaimana cara memperbaiki kesalahan ini?

Pedro
sumber
Karena ini tampaknya menjadi salah satu jawaban "Gagal mengambil" utama, saya hanya ingin menunjukkan di sini bahwa ini juga dapat terjadi dengan URL "mitra" Ubuntu di sources.list; periksa kesalahan Anda untuk melihat apakah itu kesalahannya dan coba beri komentar. Saya mengalami masalah (dan solusi) peningkatan dari Quetzal.
joseph_morris

Jawaban:

305

Penghapusan otomatis

lompat ke bagian bawah jawaban ini untuk cara yang dituliskan untuk menghapus sumber perangkat lunak yang menyinggung untuk semua versi ubuntu sebelum Ubuntu 15.04

Apa itu 404 kesalahan

Pesan kesalahan 404 atau Tidak Ditemukan adalah kode respons standar HTTP yang menunjukkan bahwa klien dapat berkomunikasi dengan server, tetapi server tidak dapat menemukan apa yang diminta.

Server hosting situs web biasanya akan menghasilkan halaman web "404 - Page Not Found", ketika pengguna mencoba mengikuti tautan yang rusak atau mati.

Apa penyebab kesalahan ini di pembaruan-manajer

Biasanya, tiga area utama menyebabkan kesalahan ini di update-manager

  1. Seorang pengguna baru saja meningkatkan dan mengaktifkan kembali sumber perangkat lunak PPA yang tidak ada lagi masukkan deskripsi gambar di sini
  2. Seorang pengguna salah mengetik sumber perangkat lunak baru secara manual masukkan deskripsi gambar di sini
  3. PPA ditambahkan, tetapi pengelola kemudian menghapus sebagian / semua PPA

di mana sumber perangkat lunak ini

PPA biasanya disimpan di salah satu dari dua lokasi

  1. /etc/apt/sources.list
  2. dalam file yang dinamai dengan ekstensi file .list di /etc/apt/sources.list.d/misalnyawebupd8team-jupiter-natty.list

File daftar ini biasanya berisi:

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

Catatan a #di bagian depan baris teks berarti bahwa itu dikomentari dan tidak diperiksa oleh manajer paket.

Cara menghilangkan kesalahan ini

Biasanya, jika Anda menjalankan sudo apt-get updatedari terminal atau mengklik tombol perincian di Pembaruan Manajer setelah menekan tombol segarkan, Anda akan melihat kesalahan seperti:

masukkan deskripsi gambar di sini

Jika kesalahan disebabkan oleh PPA - biasanya membatalkan PPA dengan nama yang sama dengan URL yang ditampilkan dalam pesan kesalahan akan menyelesaikan ini.

masukkan deskripsi gambar di sini

Jika kesalahan 404 disebabkan oleh repositori tambahan yang telah ditambahkan /etc/apt/sources.listmaka lebih mudah untuk menambahkan #karakter ke awal baris untuk mengomentari repositori yang menyinggung yaitu

gksu gedit /etc/apt/sources.list

masukkan deskripsi gambar di sini

Info lebih lanjut

Berikut ini adalah laporan bug pada manajer pembaruan untuk menyelesaikan masalah ini:

Jika Anda mendapatkan masalah ini tanpa PPA, lihat pertanyaan ini:

kebebasan fosil
sumber
Terima kasih banyak.
Andrews B Anthony
51

Penghapusan Otomatis 404 Tidak ditemukan PPA melalui skrip

Ini adalah skrip untuk menghapus secara otomatis semua 404 Tidak ditemukan PPA. Salin kode di bawah ini dan tempel ke file dan beri nama sebagai 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

Berikan izin eksekusi pada skrip

sudo chmod +x ppa-remove

Salin dan tempel ppa-removefile ke /usr/bindirektori. Jadi Anda dapat mengaksesnya dari mana saja.

Pemakaian

sudo ppa-remove

Deskripsi Skrip

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

tput setaf 6 perintah mengubah warna teks terminal menjadi hijau. Dan kemudian itu menampilkan "Inisialisasi .. Harap Tunggu" dalam warna hijau.

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;

    Baik stdout dan stderr dari perintah sudo apt-get updateditulis ke file/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 mencari garis yang terdiri dari W:, launchpad, 404di /tmp/update.txtfile.If itu menemukan bahwa kemudian di baris yang akan menampilkan (stdout) semua huruf mulai dari lokasi 26 di column5.This output standar dialihkan (ditulis) ke /tmp/awk.txtberkas.

Sebagai contoh:

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

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

di kolom ke-5 mulai dari karakter ke-26 pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Baris di atas ini disimpan ke dalam /tmp/awk.txtfile. Sekarang perintah selanjutnya,

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

awk menemukan kolom1 dan kolom2 dengan pembatas di /mana kolom1 dan kolom2 disatukan oleh /dari /tmp/awk.txtfile dan kemudian mengarahkan (tertulis) stdout ke /tmp/awk1.txtfile.

Sekarang /tmp/awk1.txtfile berisi pitti/postgresqlbaris.

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

Jika ada dua baris yang sama, uniqueperintah hanya menampilkan (stdout) satu baris. Baris tunggal itu ditulis untuk /tmp/awk2.txt Akhirnya /tmp/awk2.txtterdiri dari nama PPA unik.

tput sgr0

Perintah ini mengubah warna teks terminal menjadi putih.

Akhirnya ifpernyataan bersyarat akan dieksekusi. if [ -s /tmp/awk2.txt ]periksa isi dari file /tmp/awk2.txt yang disajikan atau tidak. Jika ya, maka dibutuhkan baris pertama dari /tmp/awk2.txtdan jalankan sudo add-apt-repository -r ppa:$lineperintah. Ini berlanjut hingga ke baris terakhir.

Jika tidak, itu berarti tidak ada konten. Jadi dikatakan "Tidak ada PPA yang harus dihapus".

Tangkapan layar

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Avinash Raj
sumber
/ usr / bin / ppa-remove: baris 32: kesalahan sintaksis: akhir file tak terduga
Shravan40
21

Anda mendapatkan kesalahan ini karena repositori PPA Anda tidak menyediakan paket untuk distribusi Ubuntu Anda (yaitu; quantal).

Lihatlah screenshot berikut:

ppa: petrakis / wdt-main Logo launchpad

wdt-main

ppa: screenlets / ppa Logo launchpad

screenlets

Anda dapat melihat bahwa direktori untuk quantalhilang dan karenanya Anda mendapatkan 404 Not Found Error Messages.

Untuk menghilangkan pesan-pesan ini, Anda harus menghapus repositori PPA ini dari sistem Anda. Ikuti pertanyaan ini tentang cara menghapus AKP:


Bagaimana menyelidiki ini dan sampai pada kesimpulan ini?

Ini adalah pesan kesalahan yang Anda terima untuk wdt-mainPPA:

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

Buka tab browser Anda dan buka tautan yang menghasilkan 404 Kesalahan Tidak Ditemukan. Dalam hal ini http://ppa.launchpad.net/petrakis/dan masuk lebih dalam sesuai tautan yang memberikan kesalahan. Anda akan dapat melihat apa masalah sebenarnya.

Aditya
sumber
17

Kemungkinan besar hal itu terjadi adalah PPA tidak lagi dipertahankan dan perlu dihapus. Anda dapat melakukan ini hanya dengan menggunakan:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*
Braiam
sumber
3
ini baru saja menyimpan pertanyaan rangkap dari diposkan .. Saya sudah siap dengan tubuh Q saya dan ketika saya mulai mengetik judul saya menemukan tautan .. mengapa mereka tidak menyimpan semua daftar di suatu tempat! ada beberapa yang terdaftar di /etc/apt/sources.listmana saya memeriksa tetapi tidak tahu saya harus melihat /etc/apt/sources.list.d/juga .. terima kasih ..
tepat
ini dan kemudian menambahkan PPA baru yang tepat ternyata menjadi solusi (hanya bekerja) terbaik bagi saya.
markus-tharkun
4

Pilih Repositori Lama

Jika Anda benar-benar membutuhkan paket dari yang repositori, Anda dapat menggunakan cermin dari rilis yang lebih tua.

Namun, harap perhatikan bahwa tidak semua rilis yang lebih lama kompatibel dengan versi sebelumnya ; beberapa di antaranya menyebabkan konflik dengan repositori paket utama Anda.

Satu-satunya hal yang dapat Anda lakukan saat konflik adalah membangun dari sumber atau menunggu hingga penyedia merilis repositori untuk versi Ubuntu Anda. Kami tidak tahu persis kapan penyedia paket akan merilis paket mereka untuk versi kami, jadi Andalah yang bertanggung jawab untuk memeriksa repositori mereka untuk rilis Anda.

Ini dapat digunakan dengan repositori berbasis Debian. Namun, tidak ada jaminan bahwa ini akan berhasil.

Langkah

  1. Lakukan seperti biasa sudo apt updatesetelah menambahkan PPA / repositori. Anda dapat melihat bahwa ada 404 kesalahan saat memperbarui; abaikan saja ini. 404 Kesalahan
  2. Buka direktori repositori yang menyebabkan 404 kesalahan pada browser Anda; dalam hal ini https://dl.winehq.org/wine-builds/ubuntu. Biasanya, rilis yang tersedia berlokasi di dists/. Cermin
  3. Setelah Anda menemukannya, buka Perangkat Lunak & Pembaruan, dan ganti nama rilis Anda dengan rilis yang tersedia; lebih disukai yang terbaru atau LTS. Ganti bagian 'Distribusi' dalam mirror kode biner dan kode sumber. Dalam hal ini, saya menggantinya bionicdengan artful. masukkan deskripsi gambar di sini
  4. Lakukan sudo apt updatelagi.
  5. Kamu sudah selesai! Sekarang Anda tidak lagi memiliki 404 kesalahan saat memperbarui daftar paket Anda. masukkan deskripsi gambar di sini
  6. Ketika paket untuk versi Ubuntu Anda dirilis, ulangi langkah 3 dan 4 dengan mengganti bagian 'Distribusi' dengan nama distribusi Anda.
Aryo Adhi
sumber
2

Perhatikan bahwa itu sudah terjadi pada saya dan saya keluar dari situasi ini. Dan itu juga berhasil untuk teman saya. Bahkan tidak bisa menjelaskan mengapa, ada sesuatu yang memecahkan masalah itu:

  1. Nonaktifkan semua PPA Anda;
  2. Lari sudo apt-get updatedari terminal;
  3. Aktifkan PPA Anda kembali lagi;
  4. Jalankan sudo apt-get update;

Dan tiba-tiba itu berhasil. Jangan tanya kenapa.

Danilo
sumber
Tidak ada bedanya bagi saya. Masih 404-an.
kwoxer
Saya menonaktifkan beberapa PPA yang tidak diinginkan dan mencoba sudo apt-get updatedan berfungsi dengan baik.
Shashanth
1

Jika Anda mendapatkan kesalahan 404 saat mencoba mendapatkan file sistem atau keamanan dari repositori resmi (bukan PPA), Anda dapat memilih mirror lain untuk menyelesaikan masalah ini.

Anda dapat:

A) tentukan satu secara manual dengan meninjau daftar ini dan memilih mirror terbaru. (Anda mungkin ingin mempertimbangkan faktor-faktor lain seperti jarak dan bandwidth) atau

B) Pilih satu secara otomatis.

Apa pun cara Anda dapat mulai dengan aplikasi Software & Updates seperti yang ditunjukkan di bawah ini: Kemudian Pilih Unduh dari diikuti oleh Lainnya. Kemudian Anda dapat secara manual memilih cermin pilihan Anda dari daftar atau mengklik tombol Pilih Server Terbaik yang akan menjalankan beberapa tes dan memilih server terbaik untuk Anda bergantung pada kondisi saat ini.

SnU

Penatua Geek
sumber