debootstrap
apt
ビルドサーバーからビルドした直後に、製品の1つのイメージファイルを生成するための自動化されたビルドおよびデプロイプロセスがあります。
これは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
ファイルがWebサーバーにない(または200
サーバーログからのすべての要求に対するステータス応答のみ)、ファイルRelease
にチェックサムがありませんでした。しかし、これは本当ではありません:
root@host:~$ curl http://buildserver.mycompany.com/project/deploy-test/./Release | grep Packages
dc7048e30031d700ec50c0ea084f69da 606332 Packages
6a601e7da66b2a518bdf901ef95b53b5 171774 Packages.gz
この動作の原因が何であるかについてのアドバイスをいただきありがとうございます。よろしくお願いします!