Fedora에서 dnf를 가지고 놀면서 새로운 것(그리고 일반적으로 Linux)을 배우려고 할 때 "dnf repoclosure"라는 명령을 발견했습니다. 물론, 출력을 보기 위해 실행했습니다. 내 초기 생각은 "dnf update"가 "Dependency Resolved"를 반환하므로 아무것도 표시되지 않을 것이라는 것이었습니다. 놀랍게도 많은 패키지 이름과 "해결되지 않은" 종속성이 발생했습니다. 왜 이런거야? "dnf 업데이트"에는 종속성 문제가 표시되지 않는 반면 "dnf repoclosure"에는 종속성 문제가 너무 많이 표시되는 이유는 무엇입니까?
종속성을 정확히 어떻게 추적합니까? 각 패키지는 필요한 종속성을 시스템에 독립적으로 알리고 설치 시 이를 일종의 레지스트리에 추가한다고 생각합니다.
간략한 요약 질문:
- "dnf repoclosure"는 해결되지 않은 종속성을 많이 표시하는 반면 "dnf update"는 아무것도 표시하지 않습니다. 왜 그런 겁니까? 해결 방법이 있나요? 라이브러리/패키지가 누락되었거나 이것이 무엇을 의미합니까?
- 종속성을 추적하는 방법은 무엇입니까? 모든 종속성에 대한 레지스터가 있는 경우 OS가 누락된 종속성을 얻을 수 없는 이유는 무엇입니까?
편집하다: 이는 Fedora 28을 새로 설치하는 것이므로 종속성 문제가 없어야 한다는 점을 지적하고 싶었습니다.
답변1
dnf repoclosure
기본적으로 시스템에 설치한 패키지뿐만 아니라 전체 패키지 저장소가 분석됩니다.
그 출력을 살펴보았습니다. 영향을 받는 패키지의 대부분은 다시 빌드되지 않고 단순히 F27 또는 이전 버전에서 상속되었거나, 나중에 의존하는 라이브러리가 업그레이드된 것으로 보입니다.대규모 재건축의 날(이런 일이 실제로 일어나서는 안 되지만, 가끔 그런 일이 발생합니다). 이러한 문제의 대부분은 단순히 버전을 릴리스하고 패키지를 빌드 시스템에 다시 제출함으로써 해결할 수 있습니다. 그들 중 일부는유아관리자가 없는 패키지는 관리자를 찾을 수 없는 경우 Fedora에서 제거됩니다.
이 도구는 Fedora 관리자가 올바르게 관리되지 않는 패키지를 찾아 새로운 관리자를 찾거나 기존 관리자에 대한 버그를 신고하는 데 유용합니다. 타사 리포지토리 관리자는 이를 사용하여 리포지토리의 패키지에 종속성 문제가 없는지 확인할 수도 있습니다.
그러나 배포 패키지 유지 관리에 관여하지 않는 일반 Linux 사용자에게는 그다지 유용하지 않습니다.