apt-get install では 404 が見つかりませんが、URL は有効です。

apt-get install では 404 が見つかりませんが、URL は有効です。

適切なストレージ

このリポジトリは、実際にすでに存在し、動作しているリポジトリを置き換えます。このリポジトリからパッケージをインストールできません。

私の中には/etc/apt/sources.list次の行があります。

deb http://mirror.cs50.net/appliance50/2014/debs/dists/trusty/main/binary-i386 /

すべてapt-get update最高です。しかし、apt-get install appliance50(このリポジトリのパッケージ)のようなものは私に以下を提供します:

Err http://mirror.cs50.net/appliance50/2014/debs/dists/trusty/main/binary-i386/  appliance50 2014-0
  404  Not Found
E: Failed to fetch http://mirror.cs50.net/appliance50/2014/debs/dists/trusty/main/binary-i386/./appliance50_2014-0_i386.deb  404  Not Found

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

しかし、URLをブラウザにコピーすると、ファイルは正常にダウンロードされます!いくつかの基本的なステップがありませんか?これは、このサーバーがリクエストをS3にリダイレクトするという事実に関連していますか?

編集する:

コメントに基づいて、以下は「sudo apt-get -o Debug::Acquire::Http=true install Appliance50」の出力です。

root@ubuntu:~# sudo apt-get -o Debug::Acquire::Http=true install appliance50
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apt-clone archdetect-deb cifs-utils dmraid dpkg-repack
  gir1.2-appindicator3-0.1 gir1.2-json-1.0 gir1.2-timezonemap-1.0
  gir1.2-xkl-1.0 kpartx kpartx-boot libdebian-installer4
  libdevmapper-event1.02.1 libdmraid1.0.0.rc16 libldb1 libntdb1 libtalloc2
  libtevent0 libtimezonemap1 libwbclient0 localechooser-data lvm2 lzma
  python-crypto python-ldb python-ntdb python-samba python-talloc python-tdb
  python3-icu python3-pam rdate samba-common samba-common-bin samba-libs
  watershed
Use 'apt-get autoremove' to remove them.
The following packages will be upgraded:
  appliance50
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,205 kB of archives.
After this operation, 4,096 B of additional disk space will be used.
0% [Working]GET /appliance50/2014/debs/dists/trusty/main/binary-i386/./appliance50_2014-0_i386.deb HTTP/1.1
Host: mirror.cs50.net
User-Agent: Debian APT-HTTP/1.3 (1.0.1ubuntu2)


HTTP/1.1 404 Not Found
Cache-control: no-cache="set-cookie"
Content-Type: text/html; charset=UTF-8
Date: Mon, 04 Aug 2014 14:23:53 GMT
Server: Apache
Set-Cookie: AWSELB=27CBB9F102866AACDE415904FB505399868B9DB4E22AC5183099E4BEEC583EF1DFA3B6E45DCB1D708481F98DC786A644C763A900F7898475BA865AD219D4E4F1F157545837;PATH=/;MAX-AGE=3600
Content-Length: 0
Connection: keep-alive

Err http://mirror.cs50.net/appliance50/2014/debs/dists/trusty/main/binary-i386/  appliance50 2014-0
  404  Not Found
E: Failed to fetch http://mirror.cs50.net/appliance50/2014/debs/dists/trusty/main/binary-i386/./appliance50_2014-0_i386.deb  404  Not Found

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

答え1

これはサーバーのバグですapt-get。正しいGETヘッダーが送信されないため、サーバーは404で応答します。

たとえば、mirror.cs50.netポート80(HTTP)でサーバーにTelnetで接続し、次のように入力します(apt-getリクエストシミュレーション)。

GET /appliance50/2014/debs/dists/trusty/main/binary-i386/./appliance50_2014-0_i386.deb HTTP/1.1
User-Agent: Debian APT-HTTP/1.3 (1.0.1ubuntu2)
Host: mirror.cs50.net
Accept: */*

これにより、以下が表示されます。

telnet mirror.cs50.net 80
Trying 54.84.6.206...
Connected to mirror.cs50.net.
Escape character is '^]'.
GET /appliance50/2014/debs/dists/trusty/main/binary-i386/./appliance50_2014-0_i386.deb HTTP/1.1
User-Agent: Debian APT-HTTP/1.3 (1.0.1ubuntu2)
Host: mirror.cs50.net
Accept: */*

HTTP/1.1 404 Not Found
Cache-control: no-cache="set-cookie"
Content-Type: text/html; charset=UTF-8
Date: Mon, 04 Aug 2014 18:31:01 GMT
Server: Apache
Set-Cookie: AWSELB=27CBB9F102866AACDE415904FB505399868B9DB4E22AC5183099E4BEEC583EF1DFA3B6E45DFCB95EFBFF7B8F8F555126DCFFF8A461898475BA865AD219D4E4F1F157545837;PATH=/;MAX-AGE=3600
Content-Length: 0
Connection: keep-alive

GET要求で点()を省略すると、/./要求はリダイレクト(302)で応答します。これは正しいです。

GET /appliance50/2014/debs/dists/trusty/main/binary-i386/appliance50_2014-0_i386.deb HTTP/1.1
Host: mirror.cs50.net
User-Agent: Debian APT-HTTP/1.3 (1.0.1ubuntu2)

HTTP/1.1 302 Found
Cache-control: no-cache="set-cookie"
Content-Type: text/html; charset=UTF-8
Date: Mon, 04 Aug 2014 19:03:27 GMT
Location: http://dkui3cmikz357.cloudfront.net/appliance50/2014/debs/dists/trusty/main/binary-i386/appliance50_2014-0_i386.deb
Server: Apache
Set-Cookie: AWSELB=27CBB9F102866AACDE415904FB505399868B9DB4E22AC5183099E4BEEC583EF1DFA3B6E45DFCB95EFBFF7B8F8F555126DCFFF8A461898475BA865AD219D4E4F1F157545837;PATH=/;MAX-AGE=3600
Content-Length: 0
Connection: keep-alive

私はこれを別のミラーとして確認しましたが、彼らは同じ状況を報告しました。

Trying 64.50.233.100...
Connected to ftp-nyc.osuosl.org.
Escape character is '^]'.
GET /debian/pool/main/e/./efivar_0.10-5_i386.deb HTTP/1.1         
Host: ftp-nyc.osuosl.org
User-Agent: Debian APT-HTTP/1.3 (1.0.6)

HTTP/1.1 404 Not Found
Date: Mon, 04 Aug 2014 18:47:03 GMT
Server: Apache
Content-Length: 307
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /debian/pool/main/e/efivar_0.10-5_i386.deb was not found on this server.</p>
<hr>
<address>Apache Server at ftp-nyc.osuosl.org Port 80</address>
</body></html>
Connection closed by foreign host.

エラーレポートにapt-getのgetヘッダーを含める必要があり、ドットスラッシュを削除する必要があります。

関連情報