При каждом обновлении пакетов (они обновляются) я получаю следующее сообщение о TeXLive:
dpkg: warning: parsing file '/var/lib/dpkg/status' near line 2888 package 'texlive-local':
missing maintainer
Это не мешает загрузке пакетов или обновлению. Но я бы хотел, чтобы это прекратилось.
Как я могу это сделать?
решение1
Пакет texlive-local
деформирован.Maintainer
полеin packages является обязательным, хотя он не используется по какой-либо технической причине — это скорее социальное требование, чтобы дать некоторую прослеживаемость всем пакетам. Отсутствие этого поля не вызывает никаких проблем, но это то, чего не должно происходить, поэтому dpkg
предупреждаю вас. Во всех официальных пакетах есть это поле.
Предупреждающее сообщение исчезнет, если вы удалите texlive-local
пакет или обновитесь до версии с Maintainer
полем. Я рекомендую вам порекомендовать сопровождающему этого пакета добавить Maintainer
поле с адресом электронной почты. Оно входит debian/control
в исходное дерево.
В то же время вы можете избавиться от предупреждения, отредактировав базу данных пакетов и добавив это поле вручную. Отредактируйте /var/lib/dpkg/status
, найдите строку, содержащую точно Package: texlive-local
, и добавьте строку, содержащую чуть ниже (адрес должен быть синтаксически правильно сформирован, но он не обязательно должен быть допустимым, если вы предпочитаете не указывать там чье-то имя).Maintainer: [email protected]
решение2
Вам повезло! У вас есть резервные копии! И более того, они создаются ежедневно без вашего ведома! Поэтому, чтобы восстановить файлы, просто запустите:
sudo rm /var/lib/dpkg/status
sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status
sudo apt-get update
Сделанный!
Если вам нужны еще более старые файлы, то есть еще несколько мест, где можно выбрать:
ls /var/backups/dpkg.status*
/var/backups/dpkg.status.0 /var/backups/dpkg.status.4.gz
/var/backups/dpkg.status.1.gz /var/backups/dpkg.status.5.gz
/var/backups/dpkg.status.2.gz /var/backups/dpkg.status.6.gz
/var/backups/dpkg.status.3.gz
Просто распакуйте их с помощью gunzip
:
gunzip -c /var/backups/dpkg.status.6.gz > /var/lib/dpkg/status
Мой собственный пост в AskUbuntu:https://askubuntu.com/a/343620/169736
Если резервные копии не годятся, другой способ — составить список doc
содержимого каталога:
sudo -i
ls /usr/share/doc | \
grep -v [A-Z] | \
grep -v '^texmf$' | \
grep -v '^debian$' | \
awk '{print $1 " install"}' | \
dpkg --set-selections