패키지를 업데이트할 때마다 (업데이트할 때) 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