Você precisa dar uma olhada no link - o tutorial de empacotamento irá ajudá-lo muito, bem como partes do guia do novo mantenedor.
Em relação às suas perguntas, na ordem:
-
O repositório contém arquivos "list". Por exemplo, link .
apt-get update
baixa esses arquivos de lista e os armazena em/var/lib/apt/lists
. Os arquivos de lista listam todos os pacotes, incluindo um monte de metadados e uma URL relativa para encontrar o .deb em. (Eles são arquivos de texto simples legíveis por humanos, então você pode apenas olhar para ele). -
O SO não importa. Você poderia hospedá-lo no Windows, se quisesse. (Bem, você talvez tenha problemas com nomes de arquivos que o Windows não gosta.) (Veja também # 4 e # 5).
-
Sim, está dentro do arquivo deb. Um arquivo deb é na verdade um arquivo (usando
ar
). Dentro estão alguns arquivos tar; um deles é (essencialmente) extraído para/
. -
É apenas HTTP (ou HTTPS, ou FTP, ou ... o apt-get suporta muitos protocolos). Nada de especial, no entanto. Note que existem arquivos Release, assinados com gpg, que garantem a integridade mesmo sem HTTPS. Espelhos Debian usam principalmente HTTP, não HTTPs. (Alguns apoiam HTTPS também para confidencialidade).
-
É apenas um sistema de arquivos estruturado.
Uma visão geral rápida e de alto nível de como o apt-get interage com uma fonte de pacotes:
-
Você configura quais origens ver no seu arquivo sources.list. Considere uma linha como:
deb http://http.us.debian.org/debian/ stretch main
deb
diz que esta é uma fonte para arquivos .deb (binários) de gettings; em seguida, há o prefixo de URL, suite / release ("stretch") e componente ("main"). -
O apt-get tem uma lista de arquiteturas, ele obtém isso do dpkg. Digamos que
dpkg --print-architecture
sejaamd64
. O apt-get agora pode construir as URLs das quais vai realmente fazer o download, combinando o prefixo da URL, a palavra "dists", o conjunto, o componente e a arquitetura. Em seguida, ele cria alguns nomes de arquivos fixos, como "Packages.xz". Isso dá o URL acima (em # 1). Existem mais alguns arquivos com nomes / caminhos definidos, como o arquivo de lançamento link e sua assinatura (mesmo, com .gpg acrescentado). Esses são todos os arquivos de texto simples (possivelmente compactados). O arquivo de lançamento contém somas de verificação para outros arquivos que o apt-get irá baixar, como o Packages.xz. -
O arquivo Packages.xz lista todos os pacotes naquele conjunto / codinome / arquitetura. Também fornece o caminho onde esse arquivo está localizado; por exemplo,
pool/main/0/0ad/0ad_0.0.21-2_amd64.deb
. -
Quando você solicita ao apt-get para baixar um pacote, ele usa esse local + o URL base para baixar o pacote, de modo que o pacote esteja em link
-
O outro diretório interessante é
source
em vez debinary-amd64
. Isso é usado para suas entradasdeb-src
; contém informações sobre pacotes de fontes (e é bastante semelhante). -
Existem algumas outras coisas (todas elas opcionais, acredito) que podem fazer parte do repositório (isto é, disponível via HTTP): diffs entre diferentes versões do arquivo Packages.xz; traduções de descrições de pacotes, uma lista completa de cada arquivo instalável e a qual pacote ele pertence (Contents-amd64.gz, usado por exemplo, apt-file, não pelo apt-get) etc. Estes provavelmente não são relevantes para você, mas você pode ver todos navegando pelo link ; a maioria deles são arquivos de texto simples.
Todos esses arquivos são texto simples. Eles podem, em teoria, ser criados à mão. Na prática, todos usa uma dessas ferramentas de geração de repositórios . Aqui - e eu aviso que essa foi uma escolha feita há muito tempo, então pode estar desatualizada - usamos mini-dinstall. A saída dessas ferramentas são arquivos comuns ou, na pior das hipóteses, links simbólicos. Você pode rsync-los para qualquer servidor web que você deseja.