debootstrap
apt
우리는 빌드 서버에서 빌드한 후 바로 제품 중 하나에 대한 이미지 파일을 생성하기 위한 자동화된 빌드 및 배포 프로세스를 갖추고 있습니다 .
이것은 sources.list
약간 이상하지만 대상 호스트가 작동하는 한 작동합니다.아니요릴리스 서명에 사용된 GPG 키를 신뢰하십시오.
root@host:/# cat /etc/apt/sources.list
deb http://buildserver.mycompany.com/project/deploy-test ./
키를 신뢰할 수 없지만 호출은 apt-get update
작동하고 모든 것이 잘 작동합니다.
root@host:/# cat /etc/apt/sources.list
deb http://buildserver.mycompany.com/project/deploy-test ./
root@host:/# apt-get update
Hit http://buildserver.mycompany.com ./ Release.gpg
Hit http://buildserver.mycompany.com ./ Release
Ign http://buildserver.mycompany.com ./ Release
Ign http://buildserver.mycompany.com ./ Packages/DiffIndex
Hit http://buildserver.mycompany.com ./ Packages
Ign http://buildserver.mycompany.com ./ Translation-en
Reading package lists... Done
W: GPG error: http://buildserver.mycompany.com ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 65F8A65265A41039
root@host:/# echo $?
0
빌드 서버의 키를 추가하면 상황이 이상해지기 시작합니다.
root@host:/# apt-key add /etc/apt/buildserver.gpg
OK
root@host:/# apt-get update
Get:1 http://buildserver.mycompany.com ./ Release.gpg [490 B]
Hit http://buildserver.mycompany.com ./ Release
Fetched 490 B in 0s (17.4 kB/s)
W: Failed to fetch http://buildserver.mycompany.com/project/deploy-test/./Release Unable to find expected entry 'Packages' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.
root@host:/# echo $?
100
인터넷 연구에 따르면 Packages
파일이 웹 서버에 없거나(아니요, 200
서버 로그의 모든 요청에 대한 상태 응답만) Release
파일에 체크섬이 누락된 것으로 나타났습니다. 그러나 이것은 사실이 아니다:
root@host:~$ curl http://buildserver.mycompany.com/project/deploy-test/./Release | grep Packages
dc7048e30031d700ec50c0ea084f69da 606332 Packages
6a601e7da66b2a518bdf901ef95b53b5 171774 Packages.gz
이 동작의 원인이 무엇인지에 대한 조언을 주시면 감사하겠습니다. 미리 감사드립니다!