dnf(Fedora)에서 패키지를 고정하는 방법

dnf(Fedora)에서 패키지를 고정하는 방법

시험판 F27을 사용하고 있고 패키지를 특정(작동) 버전으로 유지하고 후속 버전에서 문제가 중단될 때까지 업그레이드하지 않아야 하는 일시적인 상황이 있습니다. 나는 일반적으로 "당신은 이것을 정말로 원하지 않는다"는 것을 알고 있지만 내가 말했듯이 이것은 pre-rel 시스템에 대한 임시 수정입니다. apt를 사용하여 시스템 패키지를 "수정"할 수 있지만 dnf에 해당하는 항목을 찾을 수 없습니다.

답변1

Fedora 문서에는 이제빠른 문서화이 질문에 답하기 위해. 여기에 요약하면:

도착하다versionlock플러그인이 일부로 제공되는 패키지 입니다 dnf-plugins-core. 바라보다 man dnf-versionlock.

sudo dnf install 'dnf-command(versionlock)'

sudo dnf versionlock add <package-name-spec>
sudo dnf versionlock delete <package-name-spec>
sudo dnf versionlock list
sudo dnf versionlock clear    # Removes all versionlocks
sudo dnf versionlock exclude  # Also possible here

도착하다들어오지 못하게 하다거래의 패키지

sudo dnf upgrade --exclude=packagename   

또는 추가/etc/dnf/dnf.conf

excludepkgs=package-name   // See `man dnf.conf` for more

사이의 차이들어오지 못하게 하다그리고결정된(dnf: versionlock)는들어오지 못하게 하다패키지는 dnf트랜잭션이 완전히 무시하도록 지시하는 패키지 입니다.버전 잠금패키지는 패키지를 식별하지만 특정 버전으로 유지되도록 명시적으로 요청하는 패키지입니다. 패키지 제외 dnf searchdnf repoquery등에서도 작동하고 패키지가 존재하지 않는 것처럼 효과적으로 작동할 수 있기 때문에 이러한 구별이 중요합니다 .

따라서 이 질문에 대해서는:

  • versionlock그것이 바로 당신이 원하는 것이기 때문에 이 작업을 수행하고 싶을 수도 있습니다 . 이는 또한 가능한 한 패키지를 고정했고 여전히 사용 가능한 최신 버전을 볼 수 있다는 사실을 상기시키는 데 도움이 됩니다 . dnf updateinfo --list이는 편집된 경우에는 발생하지 않는 일입니다 . exclude또한: dnf check-update말 그대로 업데이트할 항목이 없기 때문에 고정된(또는 제외된) 패키지는 표시되지 않습니다.

  • 대신, " exclude패키지"는 더 넓은 의미입니다. 아마도 귀하(또는 귀하의 시스템 관리자)가 패키지 세트를 전혀 건드리고 싶지 않을 수도 있고, 일부 트랜잭션의 특정 세트 중에 무시하고 싶은 패키지 세트가 있을 수도 있습니다. 이유.

    예를 들어 다음에도 exclude동일하게 적용됩니다.

      dnf search <keywords> --exclude=packagename 
    

package-name마지막으로, 위의 내용은 종속성과 상관없이 주어진 에 직접 적용된다는 점에 유의하세요 . 그러나 나는 dnf update유지된 패키지로 인해 손상된 패키지의 업데이트를 여전히 올바르게 거부하는 것을 관찰했습니다(그리고 해당 패키지를 건너뛰고 있음을 알려주는 데 도움이 됩니다).

답변2

excludepkgsrepo 섹션에서 dnf.conf설치 또는 업그레이드를 시도해서는 안 되는 패키지 목록의 구성 옵션은 해당 repo에만 영향을 미치며 모든 repo가 ​​영향을 받습니다. 자세한 내용은 매뉴얼 페이지를 참조하십시오 .dnf[main]dnf.conf(5)

답변3

get 을 사용하여 제외를 얻을 수도 있지만 --exclude=package"제외"와 "수정"은 다른 작업이므로 올바른 고정 솔루션은 다음을 사용하는 것입니다.

python3-dnf-plugin-versionlock

다음을 대체합니다.

yum-plugin-versionlock

구성 파일은 yum과 dnf 간에 다르게 작동합니다.나는 dnf에 대한 정답을 가지고 있지 않습니다(아직 매뉴얼 페이지를 보지 않았습니다). 그러므로 자세한 내용은 추가하지 않겠습니다.패키지 및 epoc 번호를 지정하는 데 사용되는 순서가 반대인 것 같습니다. dnf 매뉴얼 페이지에는 "epoc"에 대한 언급이 없습니다(이전 시스템에 대해서는 이 매뉴얼 페이지를 확인할 수 있습니다).

냠은 다음과 같습니다

"${epoch}:${pkg_name}-${pkg_version}.*"

dnf에서는 다음과 같습니다.

"${pkg_name}-${epoch}:${pkg_version}.*"

이것이 무엇을 의미하는지 이해하려면 다음 예를 실행하면 됩니다.

dnf versionlock add bash

그리고 파일 내용을 확인해보세요.

cat /etc/dnf/plugins/versionlock.list

# Added locks on Fri Aug 28 17:30:58 2020
bash-0:4.4.19-10.el8.*

관련 정보