Debian 12로 업그레이드한 후 /lib/x86_64-linux-gnu/ 및 /usr/lib/x86_64-linux-gnu/에 중복 파일이 나타납니다.

Debian 12로 업그레이드한 후 /lib/x86_64-linux-gnu/ 및 /usr/lib/x86_64-linux-gnu/에 중복 파일이 나타납니다.

방금 시스템을 Debian 11에서 12로 업그레이드했습니다. 다음 단계를 따르세요.사이버시티 가이드. 이 시스템은 9년 넘게 최신 상태로 유지되어 최소한 4번의 주요 업그레이드(현재 데비안 7 또는 8에서 12)를 거쳤습니다.

처음 실행하는 동안 apt upgrade --without-new-pkgs오류가 발생했는데 libudev(불행히도 명령의 출력을 유지하는 것을 잊어버렸습니다) 2개의 파일을 삭제하여 문제를 해결했습니다.

$ rm /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.1.6.5

업그레이드를 완료하고 재부팅할 수 있었습니다.


추가 조사 결과 내 시스템에 다른 중복 라이브러리가 있는 것으로 나타났습니다.

$ dpkg --search /lib/x86_64-linux-gnu/perl/ /usr/lib/x86_64-linux-gnu/perl/
dpkg-query: no path found matching pattern /lib/x86_64-linux-gnu/perl/
libperl5.36:amd64: /usr/lib/x86_64-linux-gnu/perl

이 디렉토리는 심볼릭 링크가 아닌 것 같습니다.

$ ls -ld /lib/ /lib/x86_64-linux-gnu/ /usr/ /usr/lib/ /usr/lib/x86_64-linux-gnu/
drwxr-xr-x 84 root root 4.0K Jul  5 21:05 /lib//
drwxr-xr-x 78 root root  96K Jul  5 21:05 /lib/x86_64-linux-gnu//
drwxr-xr-x 12 root root 4.0K Jul  5 20:32 /usr//
drwxr-xr-x 84 root root 4.0K Jul  5 21:05 /usr/lib//
drwxr-xr-x 78 root root  96K Jul  5 21:05 /usr/lib/x86_64-linux-gnu//

이전에도 매우 비슷한 문제가 발생했습니다.Debian 10에서 11로 업그레이드한 후 systemd를 복원할 수 없습니다: "정의되지 않은 기호: seccomp_api_get"


질문은 다음과 같습니다.

  1. /lib/x86_64-linux-gnu//usr/lib/x86_64-linux-gnu/
  2. 출력에 의존하여 dpkg --search표시된 경로를 제거 할 수 있습니까 no path found …? 아니면 이 난잡함을 정리하는 데 도움이 되는 도구가 있나요?
  3. 내 시스템의 어떤 이벤트로 인해 이런 일이 발생할 수 있습니까?

업데이트: 실제로는 동일한 두 개의 디렉터리가 있는 것처럼 보입니다.

$ ls -lh /lib/x86_64-linux-gnu/test.ignore /usr/lib/x86_64-linux-gnu/test.ignore
ls: cannot access '/lib/x86_64-linux-gnu/test.ignore': No such file or directory
ls: cannot access '/usr/lib/x86_64-linux-gnu/test.ignore': No such file or directory
$ touch /lib/x86_64-linux-gnu/test.ignore
$ ls -lh /lib/x86_64-linux-gnu/test.ignore /usr/lib/x86_64-linux-gnu/test.ignore
-rw-r--r-- 1 root root 0 Jul  5 22:14 /lib/x86_64-linux-gnu/test.ignore
-rw-r--r-- 1 root root 0 Jul  5 22:14 /usr/lib/x86_64-linux-gnu/test.ignore

그러나 나는 그것이 어떻게 작동하는지 이해하지 못합니다. 이제는 그 안의 파일 /lib/x86_64-linux-gnu/도 삭제되기 때문에 그 안의 파일을 삭제할 수 없다는 것을 알고 있습니다 /usr/lib/x86_64-linux-gnu/.

答え1

심볼릭 링크를 보려면 다음을 추가하면 안 됩니다 /.

ls -ld /lib

다른 결과가 표시되어야 합니다.

데비안 12강제로 "병합 /usr", 보이는 "중복"은 정상입니다.

答え2

Stephen Kitt의 답변을 통해 내 질문에 대한 답변은 다음과 같습니다.

  1. /lib/x86_64-linux-gnu//usr/lib/x86_64-linux-gnu/

예, 심볼릭 링크가 있습니다:

$ ls -ld /lib /usr/lib
lrwxrwxrwx  1 root root    7 Jul  5 20:34 /lib -> usr/lib/
drwxr-xr-x 75 root root 4096 Jul  6 00:42 /usr/lib/
  1. 출력에 의존하여 dpkg --search표시된 경로를 제거 할 수 있습니까 no path found …? 아니면 이 난잡함을 정리하는 데 도움이 되는 도구가 있나요?

아니요, 일부 파일이 다음에 설치되어 있기 때문에 dpkg --searchon을 사용하면 /lib관련 없는 결과만 제공됩니다 /usr/lib/.

$ dpkg --search /lib/x86_64-linux-gnu/perl/cross-config-5.36.0/Config.pm \
/usr/lib/x86_64-linux-gnu/perl/cross-config-5.36.0/Config.pm
dpkg-query: no path found matching pattern /lib/x86_64-linux-gnu/perl/cross-config-5.36.0/Config.pm
libperl5.36:amd64: /usr/lib/x86_64-linux-gnu/perl/cross-config-5.36.0/Config.pm

이 파일을 삭제하면 /lib/x86_64-linux-gnu/perl/cross-config-5.36.0/Config.pm그 안의 파일도 삭제되어 /usr/lib전체 시스템이 손상될 수 있습니다.

  1. 내 시스템의 어떤 이벤트로 인해 이런 일이 발생할 수 있습니까?

Stephen이 공유한 링크에서 설명했듯이 데비안 12에서는 to to /lib심볼릭 링크가 /usr/lib/정상입니다.

関連情報