Acquire::By-Hash apt 옵션이 작동하지 않습니다.

Acquire::By-Hash apt 옵션이 작동하지 않습니다.

apt-get을 사용하려고합니다Acquire::By-Hash option, 따라서 패키지 버전이 아닌 암호화 해시로 식별하는 패키지를 다운로드합니다. 이렇게 하면 apt-get 설치를 시도할 때 가끔 발생하는 경쟁 조건과 "해시 합계 불일치" 오류를 방지할 수 있습니다.

나는 이 방법을 사용하기 위해 apt-get을 얻을 수 없습니다. 나는 노력했다

  1. Acquire::By-Hash "force";에 투자하다/etc/apt/apt.conf.d/51acquire_by_hash
  2. 소스 목록 변경: deb [by-hash=force] http://ftp.us.debian.org/debian/ buster main contrib non-free
  3. -o Acquire::by-hash=forceapt-get 옵션 중 어떤 것도 효과가 없습니다. apt-get은 여전히 ​​이전 방법을 사용합니다(요청하는 URL을 확인하세요).
# apt-get -o Acquire::by-hash=force -o Debug::Acquire::http=true install fortunes
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  fortunes
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,117 kB of archives.
After this operation, 2,611 kB of additional disk space will be used.
0% [Working]GET /debian/pool/main/f/fortune-mod/fortunes_1.99.1-7_all.deb HTTP/1.1
Host: ftp.us.debian.org
User-Agent: Debian APT-HTTP/1.3 (1.8.2.1)


0% [Waiting for headers]Answer for: http://ftp.us.debian.org/debian/pool/main/f/fortune-mod/fortunes_1.99.1-7_all.deb
HTTP/1.1 200 OK
Date: Sun, 09 Aug 2020 05:28:00 GMT
Server: Apache
Last-Modified: Thu, 15 Aug 2013 03:54:21 GMT
ETag: "110cf4-4e3f46de0807d"
Accept-Ranges: bytes
Content-Length: 1117428

Get:1 http://ftp.us.debian.org/debian buster/main amd64 fortunes all 1:1.99.1-7 [1,117 kB]
Fetched 1,117 kB in 18s (60.6 kB/s)                                                                                                              
Selecting previously unselected package fortunes.
(Reading database ... 159825 files and directories currently installed.)
Preparing to unpack .../fortunes_1%3a1.99.1-7_all.deb ...
Unpacking fortunes (1:1.99.1-7) ...
Setting up fortunes (1:1.99.1-7) ...

미러는 By-Hash를 지원합니다.

$ wget http://ftp.us.debian.org/debian/dists/buster/InRelease 2>/dev/null -O - | grep By-Hash
Acquire-By-Hash: yes

해당 옵션을 사용하기 위한 적절한 방법에 대한 아이디어가 있습니까? 감사해요.

답변1

본 매뉴얼은apt.conf(5)다음과 같이 말해보세요 Acquire::By-Hash:

다운로드해 보세요색인예상 파일의 해시와 합계로 구성된 URI를 전달합니다.

(내 강조)

내 테스트에서 다음은 예상대로 작동합니다(cleaning 후에 /var/lib/apt/listsapt clean제대로 수행되지 않는 것 같습니다). 로컬 미러가 있으므로 해당 로그에서 요청된 인덱스를 확인할 수도 있습니다.

apt{,-get} update -o Acquire::By-Hash="force" -o Debug::Acquire::http=true

그래서 매뉴얼은 정확하고 정확합니다. 해싱을 통해 패키지 자체를 가져오는 것은 지원되지 않으며 인덱싱만 지원됩니다.

관련 정보