내 로컬 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
설치 후 스크립트가 실패했습니다. 이는 안정 버전에서 이전 버전을 올바르게 처리하도록 구성되지 않았기 때문일 수 있습니다.
데비안 패키지에는 두 가지 구성 요소가 있습니다:
.tar.gz
루트 디렉토리에 추출된 일반(또는 유사한 것) 파일 아카이브- 스크립트를 설치하고 실행앞으로그리고뒤쪽에파일 추출.
따라서 패키지 설치는 다음과 같습니다.
- 패키지에 의해 실행되는 사전 설치 스크립트
- 패키지 아카이브가 루트 디렉터리에 추출됩니다.
- 설치 후 스크립트 실행
제거 프로세스는 유사하지만 삭제 전 스크립트와 삭제 후 스크립트가 있습니다.
귀하의 경우 패키지 업그레이드가 발생한 후 스크립트 호출 순서가 조금 더 복잡해졌지만 심각한 것은 아닙니다.
그들의 관점에서 볼 때 새 패키지의 설치 후 스크립트는 어떤 이유로 실행되지 않습니다. 따라서 시스템에 추출되었습니다.
개발 배포판이기 때문에 수동으로 문제를 해결하는 것은 어려운 작업이 아닙니다.
이전 설치 후 스크립트를 편집합니다.
vi /var/lib/dpkg/info/lilypond-data.postinst
링크를 만들 수 없는 곳을 찾아 링크를 허용해 달라고 요청하세요.
그런 다음 다음을 실행합니다.
dpkg --configure -a
당신이 원하는 것을 할 것입니다. (작동하지 않으면 걱정하지 말고 다시 편집하고 다시 시도하십시오.)