revdep-rebuild
Gentoo Linux를 업그레이드한 후에 이것을 실행해야 한다는 것을 알고 있습니다. 나는 또한 revdep-rebuild
공유 라이브러리 충돌을 감지하고 어떻게든 해결하는 방법을 이해합니다 . 하지만 더 알고 싶습니다.
revdep-rebuild
(가설적으로) 작업을 수동으로 수행하기 로 결정한 경우 어떻게 해야 합니까? 테스트를 위해 모든 바이너리를 어떻게 선택합니까? 특정 바이너리가 괜찮은지 어떻게 확인할 수 있나요? 바이너리에 문제가 있는 경우 문제를 해결하기 위해 다시 나타날 패키지를 어떻게 알 수 있나요?
답변1
- 먼저 모든 실행 파일을 찾을 수 있습니다.
ldd
그런 다음 종속성을 찾는 데 사용합니다*.so
.- 나중에 공유 객체가 존재하지 않으면 이를 사용하여 포함 여부를
qfile
감지합니다 .ebuild
- 마지막으로 감지된 모든 손상된 패키지가 다시 나타납니다.
답변2
추론 섹션을 읽어보세요.CentOS 7에서 Awesome Window Manager 사용하기. 분포가 바이너리인지 아닌지는 중요하지 않습니다. 이는 모든 배포판에서 동일한 동작이 발생할 수 있기 때문입니다.
링크된 게시물의 항목 4~6이 revdep-rebuld
수정 사항입니다. 항목 4의 멋진 이름은 "역의존성"입니다. 내가 찾을 수 있는 유일한 정의는 이것에 있습니다.의존성 지옥(Dependence Hell)에 대한 Wikipedia 항목. 충돌 및 순환 종속성을 참조하세요.
revdep-rebuld
/lib
역방향 종속성 재구성의 약자로, 디렉터리의 개체를 검색 .so
한 다음 비교하는 방식으로 작동합니다.에스헤어졌다산소.a
USE 플래그가 사용 되면 static-libs
정적 라이브러리 파일 버전을 가리킵니다. 그런 다음 이 두 가지를 " ldd
일치하지 않는 경우 패키지를 다시 빌드하도록 표시" 의 출력과 비교한 다음 다시 빌드합니다.
항상 2단계부터 시작하는 것을 제외하면 이 모든 것이 webKnjaz의 답변에 있습니다. revdep-rebuild
즉, 항상 모든 패키지가 손상되었다고 가정하므로 스캔하기 전에 모든 라이브러리가 손상되었다고 가정합니다.
또한 이 컬렉션 revdep-rebuild
이 새 버전의 컬렉션에 통합되었다는 사실도 알아야 합니다 .sys-apps/portage
@preserved-rebuild