Eu encontrei a solução!
Acontece que o nome do arquivo dentro de um arquivo Packages é na verdade anexado à raiz do arquivo .. Eu suponho que esteja sendo feito pelo programa apt-get.
Minha raiz do arquivo é esta:
/var/www/html/debian/ota/
Dentro do meu arquivo Packages estava esta linha:
Filename: /var/www/html/debian/ota/pool/main/sample/sample_1.0-1_amd64.deb
Eles são concatenados para produzir o URL final para baixar o DEB:
/var/www/html/debian/ota//var/www/html/debian/ota/pool/main/sample/sample_1.0-1_amd64.deb
Essa confusão é causada por um ARQUIVO DE PACOTE MAU . NÃO deve conter um caminho absoluto.
Um caminho correto no meu arquivo de pacote seria:
Filename: pool/main/sample/sample_1.0-1_amd64.deb
Veja como corrigi-lo
Anteriormente eu estava invocando apt-ftparchive packages dentro da minha pasta binária:
/var/www/html/debian/ota/dists/xenial-testing/main/binary-amd64/$ apt-ftparchive packages /var/www/html/debian/ota/pool > Packages
(Note que eu tive que usar um caminho absoluto para me referir ao local do pool dos meus debs)
Essa não é a pasta adequada a partir da qual o arquivo Packages será criado. Eu encontrei a pista neste belo pedaço de texto do debian:
The 'packages' and 'sources' command should be run in the root of the
tree. BinaryPath should point to the base of the recursive search and
override file should contain the override flags. Pathprefix is
appended to the filename fields if present. Example usage from the
Debian archive:
apt-ftparchive packages dists/potato/main/binary-i386/ > \
dists/potato/main/binary-i386/Packages
Depois que comecei a fazer as coisas dessa maneira, meu arquivo Packages começou a ter caminhos relativos dentro deles.
Minha nova linha de comando:
/var/www/html/debian/ota/$ apt-ftparchive packages pool/binary-amd64/ > dists/xenial-testing/main/binary-amd64/Packages
E o meu arquivo Packages agora contém esta linha:
Filename: pool/main/sample/sample_1.0-1_amd64.deb