저장소에서 정확한 패키지 업데이트만 허용하는 방법은 무엇입니까?

저장소에서 정확한 패키지 업데이트만 허용하는 방법은 무엇입니까?

만약 내가 가지고 있다면:

[usern@hostn yum.repos.d]$ cat google-chrome.repo 
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/i386
enabled=1
gpgcheck=1

...이런 일이 발생하지 않도록 하려면 어떻게 해야 할까요(단순 이론): Firefox 패키지는 Google 크롬 저장소에 표시되며, (역시 이론상) 원래 저장소에 있는 것보다 최신 버전이 있기 때문입니다. 설치될까요? google-chrome-repos에서 google-chrome 패키지만 가져오도록 하려면 어떻게 해야 하나요?

답변1

repo 파일에 다음 줄을 추가합니다.

includepkgs=google-chrome*

이렇게 하면 이 저장소에서 이름이 지정된 패키지만 google-chrome*업데이트되고 설치될 수 있으며 다른 모든 패키지는 무시됩니다. 공백으로 구분하면 여러 패키지를 나열할 수 있습니다.

보다 일반적인 의미에서 RPM 충돌이 있는 저장소 문제를 처리할 수 있는 좋은 방법은 없습니다. 신뢰할 수 있는 관리자가 있는 좋은 리포지토리를 선택해야 합니다. (저는 항상 추천합니다.에펠). 다음과 같은 도움이 될 수 있는 플러그인이 있습니다.냠 우선순위그리고Yum 보호 베이스하지만 저는 항상 이 incpludepkgs방법을 사용합니다. 조금 더 많은 작업이 필요하지만 한 저장소에서 특정 RPM을 원하지 않을 때 다른 저장소에서 다른 RPM을 제거하지 않는다는 것을 알고 밤에 잠을 더 잘 수 있습니다.

답변2

패키지를 설치하고 저장소 [enabled=0]를 닫습니다. 업데이트할 준비가 되면 다음 단계를 따르세요.

yum update

그런 다음 다른 모든 업데이트 후에 저장소 [enabled=1]를 엽니다.

yum update chrome             

노트:해당 저장소를 사용하려는 패키지만 있으면 됩니다.

그런 다음 저장소를 다시 닫습니다([enabled=0]).

고통스러워 보이지만 간단한 스크립트로 쉽게 할 수 있습니다. 이는 신뢰할 수 없는 저장소를 사용할 때 가장 좋은 방법입니다.

해결할 수 없는 갈등이 있는 경우. 이것이 바로 이것입니다:

LD_LIBRARY_PATH=/home/user/mylibs/:$LD_LIBRARY_PATH conflicted_program

답변3

이 yum의 "--enablerepo" 기능을 접하는 사람이라면 이를 비활성화하면서 업데이트 및 기타 작업을 수행하는 것이 매우 편리합니다.

저장소 설치

저장소 비활성화

sed -i "s/enabled=1/enabled=0/g" /etc/yum.repos.d/google-chrome.repo

Oneliner는 저장소가 해당 저장소에서 Chrome을 설치할 수 있도록 일시적으로 활성화합니다.

yum --enablerepo=google-chrome install google-chrome-stable

Oneliner는 저장소가 이 저장소에서 Chrome을 업데이트할 수 있도록 일시적으로 활성화합니다.

yum --enablerepo=google-chrome update google-chrome-stable

필요한 경우 업데이트 명령에 별칭을 추가할 수 있습니다. 이것은 명령을 기억하는 것보다 훨씬 쉽습니다.

alias updatechrome="yum --enablerepo=google-chrome update google-chrome-stable"

관련 정보