После создания индекса для моего локального репозитория я получаю эту ошибку при обновлении.
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/_home_soroush_repository_dists_precise_local_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.
E: _cache->open() failed, please report.
Тогда никакой менеджер пакетов не работает. Я знаю, что есть проблема с индексным файлом, сгенерированным dpkg-scan-packages
, но не могу его найти.
Я поддерживаю репо с помощью этого скрипта, и он долго работал правильно:
#!/bin/bash
for dist in "precise" #"oneiric"
do
for component in "local"
do
for architecture in "amd64" # "i386" "all"
do
echo "Generating package index for $dist $component $architecture..."
dpkg-scanpackages -a $architecture pool/local /dev/null | gzip -9c > dists/$dist/local/binary-$architecture/Packages
done
echo "Generating source index for $dist $component $architecture..."
dpkg-scansources pool/local > dists/$dist/local/sources/Sources
done
done
Мой вопрос: как мне найти, какой пакет вызывает проблему в индексном файле? Для этого должен быть какой-то парсер ...
Итак, это немного странно, я отвечаю на свой вопрос! : D
Это может помочь кому-то там. Я обнаружил, что единственная проблема - это имя файла сгенерированного индекса. Это должно закончиться расширением .gz. Ранее Packages
было приемлемо для dpkg
, теперь он ожидает Packages.gz
. Это новое правило, тем временем кто-то из команды Debian решил, что так будет! Я обновил сценарий локального генератора репо, и теперь все работает с файлом.