Qual é a estrutura de um repositório Ubuntu?


29

Como são organizados os arquivos em um repositório Ubuntu? Quais são os arquivos importantes em um repositório? O que acontece quando um repositório se torna inconsistente, quebrado ou está sendo sincronizado?

Respostas:


19

De acordo com a linha deb na sua fonte apt, o apt buscará:

Ele valida se o Release.gpg é uma assinatura válida para o arquivo Release e se o conteúdo Packages.gz corresponde à soma de verificação de integridade presente no arquivo Release. Se houver uma incompatibilidade, uma falha de integridade da assinatura do repositório será relatada.

O nome do arquivo do pacote solicitado é determinado a partir do conteúdo de Packages.gz recuperado anteriormente. Ele é baixado e sua soma de verificação de conteúdo deve corresponder ao conteúdo da soma de verificação Packages.gz ou uma falha de integridade é relatada.

Sua última pergunta não é sobre a estrutura do espelho em si, é sobre a sincronização do espelho, que depende do processo de espelhamento. É possível sincronizar usando um local temporário sem interromper a integridade do arquivo durante a sincronização. Não tenho certeza se todos os espelhos do Ubuntu fazem isso.


infelizmente links estão quebrados
azulada

Eles não estão quebrados, eles são apenas modelos, você terá de substituir o "release" "Componente", binary-", etc, que são campos dinâmicos.
João Pinto

18

João respondeu a segunda metade da minha pergunta, então eu investiguei a primeira metade por conta própria. No nível raiz, existem quatro diretórios e um arquivo.

root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz

(Também no repo da faculdade, apenas as duas primeiras entradas estavam lá. Portanto, as três últimas parecem não ser essenciais para o funcionamento do repo.)

O arquivo ls-lr.gzcontém a saída do ls -lrcomando conforme executado no diretório raiz do repositório.

O distsdiretório parece conter a maioria dos metadados, incluindo todos os arquivos packages.gz (que contém uma lista de pacotes) e Release.gpg / Release, que assina o pacote. (Obrigado a João pela informação)

O pooldiretório contém os arquivos .deb reais. A organização é /pool/[section]/[letter]/[group]/packagename.deb. Portanto, a localização real do pacote python-subversion é /pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb, porque subversion é o grupo do pacote python-subversion, e s é a primeira letra do subversion.

O projectsdiretório parece conter alguns arquivos detalhando como o espelho foi sincronizado com o repositório original.

O indicesdiretório contém muitos arquivos, a maioria vazios. Os arquivos não vazios parecem fornecer alguns metadados extras para pacotes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.