Debian "buster/sid"의 Lilypond 업그레이드 문제

Debian "buster/sid"의 Lilypond 업그레이드 문제

내 로컬 Debian 설치에 업그레이드가 완료되지 않는 문제가 있습니다.

  Operating System: Debian GNU/Linux buster/sid
            Kernel: Linux 4.12.0-1-686-pae
      Architecture: x86

apt upgrade -f문제를 해결하려고 시도했지만 dpkg --configure lilypond-data무엇을 하든 다음 메시지가 나타납니다.

Setting up lilypond-data (2.18.2-8) ...
 Running mktexlsr /usr/share/texlive/texmf-dist...
mktexlsr: Updating /var/lib/texmf/ls-R-TEXLIVEDIST... 
mktexlsr: Done.
ln: failed to create symbolic link 'lilypond/user': File exists
dpkg: error processing package lilypond-data (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 lilypond-data
E: Sub-process /usr/bin/dpkg returned an error code (1)

내가 실행하면 dpkg --remove --force-remove-reinstreq --dry-run lilypond-data 다음을 얻습니다.

dpkg: dependency problems prevent removal of lilypond-data:
 lilypond depends on lilypond-data (= 2.18.2-8).

dpkg: error processing package lilypond-data (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 lilypond-data

답변1

일반적인 접근 방식은 (셸 스크립트에서) 실패한 줄을 /var/lib/dpkg/info/lilypond-data.postinst찾는 것입니다 . ln그런 다음 원인을 파악하고 수정합니다(예: rm기존 링크를 통해 또는 최악의 경우 postinst를 편집하여). 물론, 버그를 신고하세요.

다른 사람이 이미 이 작업을 수행하지 않은 경우 - 참조오류 871631. 그리고 버그가 수정되었습니다. 불안정한 버전에서 2.18.2-9를 가져와 설치하기만 하면 됩니다.

(이것은 중요한 교훈을 줍니다. 수정 방법을 생각하기 전에 버그 추적 시스템을 확인하십시오...)

또한: apt-listbugs를 설치하고 싶을 수도 있습니다.

답변2

이 섹션에서는 중요한 내용을 보여줍니다.

ln: failed to create symbolic link 'lilypond/user': File exists
dpkg: error processing package lilypond-data (--configure):
 subprocess installed post-installation script returned error exit status 1

설치 후 스크립트가 실패했습니다. 이는 안정 버전에서 이전 버전을 올바르게 처리하도록 구성되지 않았기 때문일 수 있습니다.

데비안 패키지에는 두 가지 구성 요소가 있습니다:

  1. .tar.gz루트 디렉토리에 추출된 일반(또는 유사한 것) 파일 아카이브
  2. 스크립트를 설치하고 실행앞으로그리고뒤쪽에파일 추출.

따라서 패키지 설치는 다음과 같습니다.

  1. 패키지에 의해 실행되는 사전 설치 스크립트
  2. 패키지 아카이브가 루트 디렉터리에 추출됩니다.
  3. 설치 후 스크립트 실행

제거 프로세스는 유사하지만 삭제 전 스크립트와 삭제 후 스크립트가 있습니다.

귀하의 경우 패키지 업그레이드가 발생한 후 스크립트 호출 순서가 조금 더 복잡해졌지만 심각한 것은 아닙니다.

그들의 관점에서 볼 때 새 패키지의 설치 후 스크립트는 어떤 이유로 실행되지 않습니다. 따라서 시스템에 추출되었습니다.

개발 배포판이기 때문에 수동으로 문제를 해결하는 것은 어려운 작업이 아닙니다.

이전 설치 후 스크립트를 편집합니다.

vi /var/lib/dpkg/info/lilypond-data.postinst

링크를 만들 수 없는 곳을 찾아 링크를 허용해 달라고 요청하세요.

그런 다음 다음을 실행합니다.

dpkg --configure -a

당신이 원하는 것을 할 것입니다. (작동하지 않으면 걱정하지 말고 다시 편집하고 다시 시도하십시오.)

관련 정보