PPA dường như liên tục offline. 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 những lỗi này?
PPA dường như liên tục offline. 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 những lỗi này?
Câu trả lời:
bỏ qua phần dưới của câu trả lời này để biết cách viết theo 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
Thông báo lỗi 404 hoặc Không tìm thấy là mã phản hồi tiêu chuẩn HTTP cho biết máy khách 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 trang web "404 - Không tìm thấy trang", khi người dùng cố gắng theo liên kết bị hỏng hoặc chết.
Thông thường, ba lĩnh vực chính gây ra những lỗi này trong update-manager
PPA thường được lưu ở một trong hai địa điểm
/etc/apt/sources.list
/etc/apt/sources.list.d/
chẳng hạnwebupd8team-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 ý a #
ở 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.
Thông thường, nếu bạn chạy sudo apt-get update
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ư:
Nếu lỗi là do PPA - thường bỏ chọn PPA có tên tương tự với URL hiển thị trong thông báo lỗi sẽ giải quyết vấn đề này.
Nếu lỗi 404 là do kho lưu trữ bổ sung đã được thêm vào /etc/apt/sources.list
thì việc thêm #
ký tự vào đầu dòng dễ dàng hơn để nhận xét kho lưu trữ vi phạm tức là
gksu gedit /etc/apt/sources.list
Dưới đây là báo cáo lỗi về 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:
Đây là một tập lệnh để tự động xóa tất cả 404 Không tìm thấy của PPA. Sao chép mã bên dưới và dán nó vào một tệp và đặt tê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 vào /usr/bin
thư mục. Vì vậy, bạn có thể truy cập nó từ bất cứ đâu.
sudo ppa-remove
[ -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. Sau đó, nó sẽ hiển thị "Đang khởi động .. Xin vui lòng chờ" trong 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
sudo apt-get update >> /tmp/update.txt 2>&1;
Cả stdout và stderr của lệnh sudo apt-get update
đều được ghi vào tệp/tmp/update.txt
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 dòng trong đó bao gồm W:
, launchpad
, 404
trong /tmp/update.txt
file.If nó phát hiện ra rằng sau đó trong dòng đó nó sẽ hiển thị (stdout) tất cả các chữ cái bắt đầu từ vị trí thứ 26 trong column5.This đầu ra tiêu chuẩn đã được chuyển hướng (bằng văn bản) để các /tmp/awk.txt
tập tin.
Ví dụ:
W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages 404 Not Found
Đại học thứ 5 - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
trong cột thứ 5 đó bắt đầu từ ký tự thứ 26- pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages
Dòng trên đã được lưu vào /tmp/awk.txt
tập tin. Bây giờ lệnh tiếp theo,
awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;
awk tìm ra cột1 và cột2 với dấu phân cách /
trong đó cột1 và cột2 được nối với nhau /
từ /tmp/awk.txt
tệp và sau đó chuyển hướng (ghi) thiết bị xuất chuẩn thành /tmp/awk1.txt
tệp.
Bây giờ /tmp/awk1.txt
tập tin chứa pitti/postgresql
dòng.
uniq /tmp/awk1.txt > /tmp/awk2.txt
Nếu có hai dòng giống nhau, unique
lệnh chỉ hiển thị (stdout) một dòng duy nhất. Dòng đó được viết thành /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 các if
báo cáo có điều kiện sẽ thực thi. 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ẽ nhận dòng đầu tiên từ /tmp/awk2.txt
và thực thi lệnh. Nó sudo add-apt-repository -r ppa:$line
tiếp tục cho đến dòng cuối cùng.
Nếu không, điều đó có nghĩa là không có nội dung. Vì vậy, nó nói "Không có PPA nào bị xóa".
Bạn đang gặp phải những lỗi này vì kho PPA của bạn không cung cấp các gói để phân phối Ubuntu (tức là; quantal
).
Nhìn vào các ảnh chụp màn hình sau:
Bạn có thể thấy rằng thư mục quantal
bị thiếu và do đó bạn đang nhận được 404 Not Found Error Messages
.
Để loại bỏ các tin nhắn này, bạn phải xóa các kho PPA này khỏi hệ thống của bạn. Thực hiện theo câu hỏi này về cách loại bỏ PPA:
Đâ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 404 Không tìm thấy lỗi. Trong trường hợp này http://ppa.launchpad.net/petrakis/
và đi sâu hơn theo liên kết đưa ra lỗi. Bạn sẽ có thể thấy vấn đề thực sự là gì.
Khả năng cao nhất xảy ra là PPA không còn được duy trì và cần phải 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*
/etc/apt/sources.list
nơi tôi đã kiểm tra nhưng không biết tôi cũng phải xem /etc/apt/sources.list.d/
.. cảm ơn ..
Nếu bạn thực sự cần các gói từ kho lưu trữ đó , bạn có thể sử dụng các bản sao 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 bản phát hành cũ đều tương thích ngược ; một số trong số chúng 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 đợi 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 nào 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ọ để phát hành.
Điều này có thể được sử dụng với bất kỳ kho lưu trữ dựa trên Debian. Tuy nhiên, không có gì đảm bảo rằng điều này sẽ thành công.
sudo apt update
sau khi thêm PPA / kho lưu trữ. Bạn có thể nhận thấy rằng có lỗi 404 trong khi cập nhật; chỉ cần bỏ qua điều này.
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/
.
bionic
bằng artful
.
sudo apt update
lại.Lưu ý rằng nó đã xảy ra với tôi và tôi đã thoát 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 thể giải thích tại sao, có một cái gì đó đã giải quyết vấn đề đó:
sudo apt-get update
từ thiết bị đầu cuối;sudo apt-get update
;Và đột nhiên nó hoạt động. Đừng hỏi tôi tại sao.
sudo apt-get update
và nó hoạt động hoàn hảo.
Nếu bạn gặp lỗi 404 khi cố lấy các tệp bảo mật hoặc hệ thống từ kho lưu trữ chính thức (không phải 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 lại danh sách này và chọn gương mới nhất. (bạn có thể cân nhắc các yếu tố khác như khoảng cách và băng thông) hoặc
B) Chọn một 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ư được hiển thị bên dưới: Sau đó, chọn Tải xuống theo sau bởi Khác. Sau đó, bạn có thể chọn thủ công gương bạn chọn từ danh sách hoặc nhấp vào nút Chọn máy chủ tốt nhất sẽ chạy một số thử nghiệm và chọn máy chủ tốt nhất cho bạn tùy thuộc vào điều kiện hiện tại.
Tôi đã thử mọi câu trả lời có thể, nhưng giải pháp duy nhất là sao chép tệp /etc/apt/source.list mặc định của Ubuntu 16.04 sang tệp của tôi /etc/apt/sources.list
.
Nguồn: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1
Điều đó đã cứu Linux của tôi.