12.04 LTS를 업데이트할 수 없습니다 - "404 찾을 수 없음"

12.04 LTS를 업데이트할 수 없습니다 - "404 찾을 수 없음"

문제 해결을 도와주실 수 있나요?

W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/precise/restricted/binary-i386/Packages  404  Not Found [IP: 91.189.91.13 80]

W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/precise/universe/binary-i386/Packages  404  Not Found [IP: 91.189.91.13 80]

W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/precise/multiverse/binary-i386/Packages  404  Not Found [IP: 91.189.91.13 80]

E: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

컬을 사용하면 다음 URL이 잘 작동합니다.

curl -I http://archive.ubuntu.com/ubuntu/dists/precise/restricted/binary-i386/Packages.gz
HTTP/1.1 200 OK
Date: Tue, 07 Oct 2014 10:29:43 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Wed, 25 Apr 2012 22:42:47 GMT
ETag: "ae0aaa-2394-4be88971e07c0"
Accept-Ranges: bytes

답변1

HTTP 오류 404는 몇 가지 일반적인 문제처럼 보입니다.
이는 리포지토리가 사라지거나 이동되어 발생합니다.

하지만 우리 저장소가 더 이상 존재하지 않는 것은 아닙니다.

wget -q http://archive.ubuntu.com//ubuntu/dists/precise/ -O - | html2text
****** Index of /ubuntu/dists/precise ******
[[ICO]] Name              Last_modified     Size
============================================================================
[[DIR]] Parent_Directory                                                  -
[[   ]] Contents-amd64.gz 26-Apr-2012 05:30                              21M
[[   ]] Contents-i386.gz  26-Apr-2012 06:11                              21M
[[   ]] Release           25-Apr-2012 22:49                              48K
[[   ]] Release.gpg       25-Apr-2012 22:49                              198
[[DIR]] main/             05-Dec-2011 18:03                                -
[[DIR]] multiverse/       14-Oct-2011 00:29                                -
[[DIR]] restricted/       14-Oct-2011 00:29                                -
[[DIR]] universe/         14-Oct-2011 00:29                                -
============================================================================
     Apache/2.2.22 (Ubuntu) Server at archive.ubuntu.com Port 80

자세히 보면 평소와는 다르게 에 접근을 시도하고 Packages있다 Packages.gz.

그것은 실제로 의심스러워 보이지 않습니다. 다음과 같은 다양한 형식을 사용할 수 있습니다 .bz2. 압축되지 않은 것은 또 다른 인코딩일 뿐입니다.

$ wget -q http://archive.ubuntu.com//ubuntu/dists/precise/restricted/binary-i386/ -O - | html2text
****** Index of /ubuntu/dists/precise/restricted/binary-i386 ******
[[ICO]] Name             Last_modified     Size
============================================================================
[[DIR]] Parent_Directory                                                  -
[[   ]] Packages.bz2     25-Apr-2012 22:42                              8.2K
[[   ]] Packages.gz      25-Apr-2012 22:42                              8.9K
[[   ]] Release          25-Apr-2012 22:49                               102
============================================================================
     Apache/2.2.22 (Ubuntu) Server at archive.ubuntu.com Port 80

실제로 누락된 항목을 찾은 후에도 Packages실제로 뭔가 잘못되었다고 의심할 이유는 아닙니다. 일반적인 웹 서버에는 필요에 따라 파일의 압축을 투명하게 풀 수 있는 옵션이 있습니다. 여기서는 바로 그런 일이 발생하는 것으로 보입니다.


얼마 후 나는 버그 보고서를 발견했는데, 그에 따르면 파일 이름이 없는 곳은 .gz실제로 이 곳에서 명백히 잘못된 것입니다.

하지만 그 원인은 정말 예상치 못한 일입니다. 디렉토리가 평소보다 더 깊이 중첩되어 있기 때문에 URL 길이가 어느 정도 제한에 도달했습니다. 일부 고정 길이 버퍼에 맞지 않습니다. 3바이트가 너무 깁니다. 따라서 세 개의 문자가 삭제됩니다. URL에는 URL 매개변수 등이 없습니다. 따라서 URL 가져오기 경로가 잘립니다.

세 문자로 .gz. 완벽하게 유효한 파일 이름을 남깁니다.

대신 패키지만 검색하므로 Packages.gz를 찾을 수 없습니다.

관련 정보