
다른 사람의 조언에 따라질문컴퓨터 에 로컬 RPM 저장소를 설정하고 Red Hat 8
거기에 개인 패키지를 배치했으며 이제 설치, 업데이트 등을 할 수 있습니다.
그러나 문제가 있습니다. 개인 저장소에 추가한 패키지 중 하나는 실제로 공식 RedHat 저장소에서 사용할 수 있는 패키지의 수정된 버전이며 이름이 동일합니다. 그래서 yum search
또는 yum install
내 것이 아닌 공식 거울에서 패키지를 가져옵니다. 나는 이것을 해결하려고 노력했지만 yum --repo=my_private_repo ...
이것은 또한 모든 의존성을 끌어내려고 노력할 것입니다.my_private_repo공식적인 것 대신.
이 문제를 해결하는 올바른 방법은 무엇일까요? 더 나은 옵션은 공식 패키지와 충돌하지 않도록 패키지(내 저장소에서 수정하고 추가한 패키지)의 이름을 바꾸는 것입니까?
어떤 조언이라도 감사하겠습니다!
답변1
EL baseos 또는 appstream repos에서 패키지를 교체하는 것은 까다롭습니다. 배포판이 기대했던 것을 다른 것으로 바꾸면 악몽 종속성 문제가 발생할 수 있습니다. 이것이 EL 커뮤니티가 특정 항목을 싫어하는 이유 중 하나입니다.제3자 저장소.
정상적인 작업을 수행하는 저장소를 찾고 해당 저장소가 패키지에 대해 수행하는 작업을 조사하세요.IUS예입니다. 안전하려면 다음 사항이 모두 사실이어야 합니다.
대부분의 IUS 패키지는 안전한 교체 패키지입니다. 이는 다음과 같은 속성을 가진 패키지를 설명하는 데 사용하는 용어입니다.
- 스톡 패키지의 기능을 대체합니다.
- 의도하지 않은 업그레이드를 방지하기 위해 기본 패키지와 다른 이름을 사용합니다.
- 다른 패키지의 종속성을 충족하려면 스톡 패키지 이름을 제공하세요.
- 재고 패키지와 충돌합니다.
- 재고 패키지를 폐기해서는 안 됩니다.
예를 들어 "haproxy" 대신 설치할 수 있습니다."하프록시22". IUS만 제공하는 이름이지만 appstream 이름을 대체합니다.
Name: haproxy22
Provides: haproxy = %{version}-%{release}
Provides: haproxy%{?_isa} = %{version}-%{release}
Conflicts: haproxy < %{version}-%{release}
참고하세요하다rpm을 원하면 스톡 패키지와 충돌하므로 dnf는 이를 고려하지 않습니다.
이 구성표에는 재고보다 더 높은 버전 릴리스 번호가 필요합니다. 릴리스 번호를 많이 늘리는 것을 고려하십시오.
또한보십시오Fedora 패키징 지침자원을 위해.