Какова структура репозитория Ubuntu?

Как организованы файлы в хранилище Ubuntu? Каковы важные файлы в хранилище? Что происходит, когда хранилище становится непоследовательным, поврежденным или синхронизируется?

29
задан 27 February 2011 в 22:27

2 ответа

В соответствии с строкой deb в вашем источнике apt, apt будет получать:

Он проверяет, является ли Release.gpg действительной подписью для файла Release, и соответствует ли содержимое Packages.gz контрольная сумма целостности присутствует в файле Release. В случае несоответствия сообщается о сбое целостности подписи репозитория.

Имя файла пакета для запрошенного пакета определяется из ранее извлеченного содержимого Packages.gz. Он загружен, и его контрольная сумма содержимого должна соответствовать содержимому контрольной суммы Packages.gz, или сообщается о сбое целостности.

Ваш последний вопрос не о структуре зеркала как таковой, а о синхронизации зеркала, которая зависит от процесса зеркалирования. Возможна синхронизация с использованием временного местоположения без нарушения целостности архива во время синхронизации. Я не уверен, что все зеркала Ubuntu делают это.

0
ответ дан 27 February 2011 в 22:27

Жоао ответил на вторую половину моего вопроса, поэтому я исследовал первую половину самостоятельно. На корневом уровне есть четыре каталога и один файл.

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

(Также в моем репо из колледжа были только первые две записи. Таким образом, последние 3, по-видимому, не являются необходимыми для функционирования репо.)

Файл ls-lr.gz содержит выходные данные команды ls -lr при запуске в корневом каталоге хранилища.

Кажется, что каталог dists содержит большую часть метаданных, включая все файлы packages.gz (который содержит список пакетов) и Release.gpg / Release, который подписывает пакет. (Спасибо Joao за информацию)

Каталог pool содержит актуальные файлы .deb. Организация /pool/[section]/[letter]/[group]/packagename.deb. Таким образом, фактическое местоположение пакета python-subversion - /pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb, потому что subversion - это группа пакета python-subversion, а s - первая буква Subversion.

Кажется, что каталог projects содержит несколько файлов, подробно описывающих, как зеркало было синхронизировано с исходным репо.

Каталог indices содержит много файлов, большинство из которых пустые. Непустые файлы предоставляют дополнительные метаданные для пакетов.

0
ответ дан 27 February 2011 в 22:27

Другие вопросы по тегам:

Похожие вопросы: