Câu hỏi Làm cách nào để khắc phục lỗi 404 khi sử dụng PPA hoặc cập nhật danh sách gói của tôi?


PPA dường như liên tục ngoại tuyến. Bất cứ khi nào tôi sử dụng sudo apt-get update, lỗi này được hiển thị:

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

Làm cách nào để sửa các lỗi này?


240
2017-10-14 01:16


gốc


Vì đây có vẻ là một trong những câu trả lời chính "Không tìm nạp được", tôi chỉ muốn chỉ ra ở đây rằng điều này cũng có thể xảy ra với URL "đối tác" của Ubuntu trong sources.list; kiểm tra lỗi của bạn để xem liệu đó có phải là lỗi hay không và thử nhận xét chúng. Tôi chạy vào vấn đề đó (và giải pháp) nâng cấp từ Quetzal. - joseph_morris


Các câu trả lời:


Tự động xóa

bỏ qua đến cuối câu trả lời này cho một cách kịch bản để loại bỏ các nguồn phần mềm vi phạm cho tất cả các phiên bản Ubuntu trước Ubuntu 15.04

Lỗi 404 là gì

Thông báo lỗi 404 hoặc Not Found là mã phản hồi chuẩn của HTTP   chỉ ra rằng khách hàng đã có thể giao tiếp với máy chủ,   nhưng máy chủ không thể tìm thấy những gì được yêu cầu.

Máy chủ lưu trữ trang web thường sẽ tạo "404 - Không phải trang   Tìm thấy "trang web, khi người dùng cố gắng theo một liên kết bị hỏng hoặc chết.

Nguyên nhân của những lỗi này trong trình quản lý cập nhật là gì

Thông thường, ba khu vực chính gây ra các lỗi này trong update-manager

  1. Người dùng vừa mới nâng cấp và đã bật lại nguồn phần mềm PPA không còn tồn tại enter image description here
  2. Người dùng đã nhập thủ công nguồn phần mềm mới không chính xác enter image description here
  3. Một PPA đã được thêm vào, nhưng người duy trì sau đó đã xóa một số / tất cả các PPA

các nguồn phần mềm này ở đâu

PPA thường được lưu ở một trong hai địa điểm

  1. /etc/apt/sources.list 
  2. trong một tệp được đặt tên thích hợp có phần mở rộng tệp .list trong /etc/apt/sources.list.d/ ví dụ webupd8team-jupiter-natty.list

Tệp danh sách này thường chứa:

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

Lưu ý một # ở phía trước của một dòng văn bản có nghĩa là nó được nhận xét và không được kiểm tra bởi người quản lý gói.

Cách loại bỏ các lỗi này

Thông thường, nếu bạn chạy sudo apt-get update từ một thiết bị đầu cuối hoặc nhấp vào nút chi tiết trong Trình quản lý cập nhật sau khi nhấn nút làm mới, bạn sẽ thấy các lỗi như:

enter image description here 

Nếu lỗi là do PPA - thường không được đánh dấu PPA có tên tương tự với URL được hiển thị trong thông báo lỗi sẽ giải quyết vấn đề này.

enter image description here 

Nếu lỗi 404 là do một kho lưu trữ bổ sung đã được thêm vào /etc/apt/sources.list sau đó dễ dàng hơn để thêm # ký tự để bắt đầu dòng để nhận xét ra kho lưu trữ vi phạm tức là

gksu gedit /etc/apt/sources.list

enter image description here

Loại bỏ kịch bản cho tất cả các phiên bản ubuntu trước 15.04

Tôi đã viết một kịch bản nhanh để kiểm tra các PPA và Phần mềm-Nguồn có lỗi 404. Điều này làm việc cho tất cả các phiên bản Ubuntu trước 15.04. Đối với 15.04 và sau đó thực hiện các phương pháp thủ công được mô tả ở trên.

Trong PPA của tôi:

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

Bạn chỉ có thể tải xuống gói deb và cài đặt trực tiếp:

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. cùng một gói deb cho tất cả các bản phân phối.

Câu hỏi / Bình luận / Cải thiện xin vui lòng qua Liên kết Launchpad Liên hệ với tôi

Cách sử dụng:

sudo banish404

Kịch bản sẽ tự động sao lưu các nguồn của bạn trước khi sửa đổi - được tìm thấy trong /etc/apt

Thêm thông tin

Đây là một báo cáo lỗi trên trình quản lý cập nhật để giải quyết vấn đề này:

Nếu bạn gặp phải những vấn đề này mà không có PPA, hãy xem câu hỏi này:


285
2018-01-05 00:15



Sử dụng ngay bây giờ để hy vọng khắc phục sự cố của tôi - để yên tâm, thật tuyệt nếu bạn có thể thêm liên kết [hoặc phần ngắn] về cách 'khôi phục' từ bản sao lưu nếu cần - Louis Maddox
Nếu bạn loại bỏ các ppa này có nghĩa là bạn cần phải nhận được các bản cập nhật có liên quan từ một nơi khác? - Addem
@ fossfreedom Tại sao điều này không hoạt động trên 15.04? - Mark Yisri
Tôi đã sử dụng việc loại bỏ kịch bản cho ubutu 14.04. Nó hoạt động rất tốt. Cảm ơn rất nhiều. - Mohit Mittal
Lưu ý - giải pháp kịch bản không hoạt động trên Ubuntu Server mà không thiết lập hiển thị (Thử nghiệm trên 14.04 LTS). - cerd


Tự động loại bỏ 404 Không tìm thấy PPA thông qua tập lệnh

Đây là một kịch bản để loại bỏ tự động tất cả 404 Không tìm thấy PPA's.Copy mã dưới đây và dán nó vào một tập tin và đặt tên nó là 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

Cấp quyền thực thi cho tập lệnh

sudo chmod +x ppa-remove

Sao chép và dán ppa-remove tập tin vào /usr/bin directory.So đó bạn có thể truy cập nó từ bất cứ đâu.

Sử dụng

sudo ppa-remove

Mô tả tập lệnh

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

tput setaf 6 lệnh biến màu văn bản đầu cuối thành màu xanh lá cây. Và sau đó nó sẽ hiển thị "Khởi tạo .. Vui lòng đợi" bằng màu xanh lục.

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;

    Cả hai stdout và stderr của lệnh sudo apt-get update được ghi vào tập tin /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 tìm kiếm các dòng trong đó bao gồm W:,launchpad,404 bên trong /tmp/update.txt tập tin.Nếu nó thấy rằng sau đó trong dòng nó hiển thị (stdout) tất cả các chữ cái bắt đầu từ vị trí thứ 26 trong cột5.Đầu ra tiêu chuẩn này đã được chuyển hướng (bằng văn bản) cho /tmp/awk.txttập tin.

Ví dụ:

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

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

trong cột thứ 5 bắt đầu từ nhân vật thứ 26- pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

Dòng trên đã được lưu trữ vào /tmp/awk.txt file.Bây lệnh tiếp theo,

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

awk phát hiện ra cột1 và cột2 với dấu tách / nơi cột 1 và cột 2 được nối bởi /từ /tmp/awk.txt tập tin và sau đó chuyển hướng (bằng văn bản) các stdout để /tmp/awk1.txt tập tin.

Hiện nay /tmp/awk1.txt tập tin chứa pitti/postgresql hàng.

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

Nếu có hai dòng giống nhau, unique lệnh hiển thị (stdout) một dòng duy nhất. Đó là dòng duy nhất được ghi vào /tmp/awk2.txt Cuối cùng /tmp/awk2.txt bao gồm các tên PPA duy nhất.

tput sgr0

Lệnh này thay đổi màu của văn bản đầu cuối thành màu trắng.

Cuối cùng if báo cáo điều kiện sẽ thực hiện. if [ -s /tmp/awk2.txt ] kiểm tra nội dung của tập tin /tmp/awk2.txt có hay không. Nếu có, thì nó sẽ lấy dòng đầu tiên từ /tmp/awk2.txt và thi hành sudo add-apt-repository -r ppa:$line command.It tiếp tục tối đa đến dòng cuối cùng.

Nếu không, nó có nghĩa là không có nội dung. Vì vậy, nó nói "Không có PPA để được loại bỏ".

Ảnh chụp màn hình

enter image description here

enter image description here


49
2018-03-10 18:08



/ usr / bin / ppa-remove: dòng 32: lỗi cú pháp: kết thúc tệp không mong muốn - Shravan40


Bạn đang gặp phải những lỗi này vì kho lưu trữ PPA của bạn không cung cấp gói cho bản phân phối Ubuntu của bạn (ví dụ; quantal).

Xem các ảnh chụp màn hình sau:

ppa: petrakis / wdt-main Launchpad logo

wdt-main

ppa: screenlets / ppa Launchpad logo

screenlets

Bạn có thể thấy rằng thư mục cho quantal là mất tích và do đó bạn đang nhận được 404 Not Found Error Messages.

Để loại bỏ các thư này, bạn phải loại bỏ các kho lưu trữ PPA này khỏi hệ thống của bạn. Làm theo câu hỏi này về cách loại bỏ PPA:


Làm thế nào để điều tra điều này và đi đến kết luận này?

Đây là những thông báo lỗi bạn nhận được cho 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

Mở tab trình duyệt của bạn và mở liên kết cung cấp lỗi 404 không tìm thấy. Trong trường hợp này http://ppa.launchpad.net/petrakis/ và đi sâu hơn theo liên kết cung cấp lỗi. Bạn sẽ có thể xem vấn đề thực tế là gì.


20
2018-02-16 18:59





Có thể xảy ra nhất là việc PPA không còn được duy trì và cần phải được loại bỏ. Bạn có thể làm điều này chỉ bằng cách sử dụng:

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

17
2017-12-23 18:08



điều này chỉ cần lưu một câu hỏi trùng lặp từ được đăng .. Tôi đã có cơ thể của Q của tôi đã sẵn sàng và chỉ khi tôi bắt đầu gõ tiêu đề của tôi tìm thấy liên kết .. tại sao họ không giữ tất cả danh sách ở một nơi! có một số được liệt kê trong /etc/apt/sources.list nơi tôi đã kiểm tra nhưng không biết tôi phải nhìn vào /etc/apt/sources.list.d/ quá .. cảm ơn .. - precise
điều này và sau đó thêm PPA mới thích hợp hóa ra là giải pháp tốt nhất (chỉ làm việc) cho tôi. - markus-tharkun


Chọn kho lưu trữ cũ hơn

Nếu bạn thực sự cần các gói từ cái đó kho lưu trữ, bạn có thể sử dụng các gương từ bản phát hành cũ hơn.

Tuy nhiên, xin lưu ý rằng không phải tất cả các phiên bản cũ hơn đều là tương thích ngược; một số trong số đó gây ra xung đột với kho lưu trữ gói chính của bạn.

Điều duy nhất bạn có thể làm khi xung đột là xây dựng từ nguồn hoặc chờ cho đến khi nhà cung cấp phát hành kho lưu trữ cho phiên bản Ubuntu của bạn. Chúng tôi không biết chính xác khi các nhà cung cấp gói sẽ phát hành gói của họ cho phiên bản của chúng tôi, vì vậy bạn là người chịu trách nhiệm kiểm tra kho lưu trữ của họ cho bản phát hành của bạn.

Điều này có thể được sử dụng với bất kỳ kho lưu trữ dựa trên Debian nào. Tuy nhiên, không có gì đảm bảo rằng điều này sẽ thành công.

Các bước

  1. Làm bình thường sudo apt update sau khi thêm PPA / kho lưu trữ. Bạn có thể nhận thấy rằng có 404 lỗi trong khi cập nhật; chỉ cần bỏ qua điều này. 404 Error
  2. Mở thư mục kho lưu trữ gây ra lỗi 404 với trình duyệt của bạn; trong trường hợp này nó là https://dl.winehq.org/wine-builds/ubuntu. Thông thường, các bản phát hành có sẵn được đặt tại dists/. Mirrors
  3. Sau khi bạn định vị nó, hãy mở Phần mềm & Cập nhật và thay thế tên bản phát hành của bạn bằng bản phát hành có sẵn; tốt nhất là mới nhất hoặc LTS. Thay thế phần 'Phân phối' trong các mã nhị phân và mã nguồn. Trong trường hợp này, tôi đang thay thế bionic với artful. enter image description here
  4. Làm sudo apt update lần nữa.
  5. Bạn đã hoàn tất! Bây giờ bạn không còn lỗi 404 trong khi cập nhật danh sách gói của bạn. enter image description here
  6. Khi các gói cho phiên bản Ubuntu của bạn được phát hành, hãy lặp lại bước 3 và 4 bằng cách thay thế phần 'Phân phối' bằng tên phân phối của bạn.

4
2018-05-23 06:07





Lưu ý rằng nó đã xảy ra với tôi và tôi đã ra khỏi những tình huống này. Và nó cũng làm việc cho một người bạn của tôi. Thậm chí không có khả năng giải thích tại sao, có cái gì đó giải quyết vấn đề đó:

  1. Vô hiệu hóa tất cả các PPA của bạn;
  2. Chạy sudo apt-get update từ nhà ga;
  3. Bật lại PPA của bạn;
  4. Chạy sudo apt-get update;

Và đột nhiên nó hoạt động. Đừng hỏi tôi tại sao.


2
2017-11-19 20:22



Không tạo ra sự khác biệt nào cho tôi. 404 vẫn còn. - kwoxer
Tôi đã vô hiệu hóa một số PPA không mong muốn và đã thử sudo apt-get update và nó hoạt động hoàn hảo. - Shashanth


Nếu bạn gặp lỗi 404 khi cố gắng lấy tệp bảo mật hoặc tệp hệ thống từ kho lưu trữ chính thức (không phải là PPA), bạn có thể chọn một máy nhân bản khác để giải quyết vấn đề này.

Bạn có thể:

A) xác định một cách thủ công bằng cách xem xét danh sách này và chọn tấm gương mới nhất. (bạn có thể xem xét các yếu tố khác như khoảng cách và băng thông) hoặc

B) Chọn một cách tự động.

Dù bằng cách nào bạn cũng có thể bắt đầu với ứng dụng Phần mềm & Cập nhật như hình dưới đây: Sau đó chọn Tải xuống từ theo sau là Khác. Sau đó, bạn có thể tự chọn tấm gương của sự lựa chọn của bạn từ danh sách hoặc bấm vào nút Chọn máy chủ tốt nhất sẽ chạy một số kiểm tra và chọn máy chủ tốt nhất cho bạn phụ thuộc vào điều kiện hiện tại.

SnU


1
2018-01-15 14:57