실패한 데비안 업그레이드 수정

실패한 데비안 업그레이드 수정

데비안 9에서 10으로 업그레이드하려고 하는데 설치하려고 하면 설치에 실패합니다 systemd-sysv_241-7~deb10u6_amd64.deb. 다음 오류가 발생합니다.

실행하려는 시도가 apt --fix-broken install실패했으며 아래와 같은 오류가 발생했습니다.

(Reading database ... 59371 files and directories currently installed.)
Preparing to unpack .../systemd-sysv_241-7~deb10u6_amd64.deb ...
Unpacking systemd-sysv (241-7~deb10u6) ...
dpkg: error processing archive /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb (--install):
 trying to overwrite '/usr/share/man/man8/halt.8.gz', which is also in package sysvinit 2.88dsf-41+deb7u1
Processing triggers for man-db (2.7.6.1-2) ...
Errors were encountered while processing:
 /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

격리하려고 할 때 자세한 정보 표시 모드에서 실패한 명령을 실행하면 다음과 같은 결과가 나타납니다.

# dpkg --debug=77777 -i /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb
...
D000040: ok 2 msgs >><<
D010000: check_triggers_cycle pnow=man-db:amd64
D020000: check_triggers_cycle pnow=man-db:amd64 first
Processing triggers for man-db (2.7.6.1-2) ...
D000002: fork/exec /var/lib/dpkg/info/man-db.postinst ( triggered /usr/share/man )
D000001: ensure_diversions: same, skipping
D020000: post_postinst_tasks - trig_incorporate
Errors were encountered while processing:
 /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

불행하게도 이 "장황한" 디버깅은 나에게는 너무 간결해서 업그레이드하는 동안 막혔습니다.

설치 후 다음과 같이 man-db를 실행해 보았습니다.

sh -x /var/lib/dpkg/info/man-db.postinst configure 2.6.7.1-2

오류 없이 성공적으로 완료되었으므로 어떤 오류를 수정해야 할지 잘 모르겠습니다.

설치 스크립트가 에 있다는 것을 알고 있지만 ls /var/lib/dpkg/info이 패키지와 관련된 스크립트가 무엇인지는 모릅니다.

이 문제를 더 철저하게 디버깅하고 수정하기 위한 자세한 정보를 어디서 얻을 수 있는지 알려주실 수 있나요?

답변1

현재 존재하는 것보다 더 관련성 높은 정보를 어떻게 얻을 수 있는지 모르겠습니다. 오류 메시지는 다음과 같습니다.

sysvinit 2.88dsf-41+deb7u1 패키지에도 있는 '/usr/share/man/man8/halt.8.gz'를 덮어쓰십시오.

기본적으로 그게 전부입니다. 두 패키지가 동일한 파일을 설치하려고 하는데 데비안에서는 이를 금지합니다(단일 파일이 두 개의 다른 내용을 가질 수 없기 때문입니다).

문제의 파일은 단지 맨페이지일 뿐이므로 어떤 것도 있어서는 안 됩니다.진짜두 패키지 중 어느 패키지가 "승리"하는지에 관계없이 문제(예: 시스템이 부팅되지 않게 하는 치명적인 문제).

그래서 개인적으로 하나 만들어볼까강요된깨진 패키지를 설치합니다:

# dpkg --force-overwrite -i /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

그런 다음 업그레이드를 다시 시작하십시오.

그러나 --force-***옵션은 dpkg일반적으로 위험한 것으로 간주되므로 해당 옵션의 의미를 이해하지 못한 채 인터넷에서 셸 조각을 복사하여 맹목적으로 강제해서는 안 됩니다.

데비안 업그레이드

OTOH, 데비안은 데비안 버전 간 시스템 업그레이드를 원활하게 만들기 위해 많은 피땀과 눈물을 쏟습니다(예:9도착하다10). 그러면 왜 그것이 당신에게 효과가 없습니까?

주요 버전 간에 업그레이드를 사용해야 합니다 apt-get dist-upgrade(이렇게 하면 파서가 완화되고 업그레이드가 단순보다 더 복잡해질 수 있으므로 apt-get upgrade).

또한 이전 설치에서 정크를 삭제했는지 확인해야 합니다. 예를 들어, 충돌하는 패키지에 Debian의 것임을 나타내는 sysvinit버전 번호가 있습니다 .2.88dsf-41+deb7u17. 사실 sysvinit데비안 이후에는 패키지가 없었습니다.8.

따라서 먼저 실제로 실행하고 있는지 확인해야 합니다.데비안 9시스템을 업그레이드하기 전에데비안 10.

답변2

사용:

sudo dpkg -i --force-overwrite  /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

다음은:

sudo apt install -f

관련 정보