apt를 사용하여 Debian에서 깨진 libxml2-dev 종속성을 수정하는 방법은 무엇입니까?

apt를 사용하여 Debian에서 깨진 libxml2-dev 종속성을 수정하는 방법은 무엇입니까?

Debian Squeeze 설치에서 이것을 실행 하면 sudo apt-get upgrade다음 오류가 발생합니다:

You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libxml2-dev : Depends: libxml2 (= 2.7.8.dfsg-2+squeeze3) but 2.7.8.dfsg-2+squeeze5 is installed
E: Unmet dependencies. Try using -f.

"squeeze3"과 "squeeze5"가 무엇을 의미하는지 잘 모르겠지만 이것이 libxml2 패키지의 유일한 차이점입니다.

"sudo apt-get install -f"를 시도하면 다음과 같은 결과가 나타납니다.

The following extra packages will be installed:
  libxml2-dev
The following packages will be upgraded:
  libxml2-dev
1 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
108 not fully installed or removed.
Need to get 0 B/830 kB of archives.
After this operation, 69.6 kB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 96842 files and directories currently installed.)
Preparing to replace libxml2-dev 2.7.8.dfsg-2+squeeze3 (using .../libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb) ...
Unpacking replacement libxml2-dev ...
dpkg: error processing /var/cache/apt/archives/libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb (--unpack):
 unable to install new version of `./usr/include/libxml2': No such file or directory
configured to not write apport reports
                                      dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

유사한 오류가 발생할 수 있습니다 sudo apt-get upgrade -f.

내 /etc/apt/sources.list는 현재 다음과 같습니다.

deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

이 문제를 어떻게 해결할 수 있나요? 감사해요!

답변1

squeeze3스퀴즈의 세 번째 패치 버전이자 squeeze5다섯 번째 패치 버전입니다. 이는 버전 번호의 일부입니다. 라이브러리와 개발 파일의 버전은 정확히 일치해야 하므로 apt-get install -fAPT에서는 시스템 버전이 일치하지 않을 때 실행될 것으로 예상하는 것이 일반적입니다.

비정상적인 것은 업그레이드가 libxml2-dev실패한다는 것입니다. 읽을 수 없다는 메시지 /usr/include/libxml2는 일반적이지 않습니다. 이는 설치가 어떤 방식으로든 손상되었음을 나타내는 것 같습니다. 디렉토리가 아직 존재하는지 확인하십시오. 어느 시점에서 이동하거나 삭제했다면... 그러지 말고 디렉터리를 다시 생성하거나 이동하여 복원하세요. 디렉토리가 존재하지만 다음과 같은 내용이 표시되는 경우

$ ls -ld /usr/include/libxml2
?????????? ??? ???????? ???????? 4096 ??? ?? ???? /usr/include/libxml2

그러면 파일 시스템이나 RAM이 손상될 수 있습니다. 첫 번째,기억력을 확인해보세요: 이는 파일 시스템 손상의 가장 일반적인 원인입니다. RAM 상태를 확인할 때까지 가능한 한 적게 쓰십시오. 이렇게 하면 손상이 더 심해질 수 있습니다. 거기에서 제거하는 방법은 손상의 성격과 정도에 따라 다릅니다.

답변2

지우고 다시 설치해보세요.

sudo apt-get purge -f libxml2-dev
sudo apt-get clean
sudo apt-get update
sudo apt-get install libxml2 libxml2-dev

패키지는 -dev라이브러리와 연결된 프로그램을 컴파일하는데 필요한 구성요소일 뿐 런타임에는 필요하지 않으므로 완전히 지워도 안전합니다.

관련 정보