캐시를 정리하지 않고 yum이 로컬 저장소에 대한 업데이트를 보도록하려면 어떻게해야합니까?


19

테스트 빌드를 설치하는 데 사용하는 로컬 yum 저장소를 설정했습니다. 테스트 목적으로 내 패키지는 <svn version number>.<date>.<time>(예 :12345.20110908.150404

문제는 일단 새 RPM을 만든 후이를 저장소 디렉토리에 복사하고 실행 createrepo $REPO_DIR하면 yum이 새 RPM을 사용할 수있는 것으로 보지 않습니다.

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo

yum clean all메타 데이터를 실행 한 다음 다시 가져 오면 업데이트를 확인하고 가져올 수 있지만 이는 다른 yum repos에 대해 할 필요가 없으므로 repo에서 다른 작업을 수행해야 함을 의미한다고 생각합니다.

yum updateyum 캐시를 정리하지 않고 클라이언트 에서만 실행할 수 있도록 로컬 저장소를 어떻게 설정해야 합니까?

답변:


24

"yum clean expire-cache"를 실행하여 yum에게 repos를 확인하도록 지시하는 훨씬 효율적인 방법입니다. ... 할 다른 작업은 로컬 리포지토리의 metadata_expire 값을 변경하는 것입니다. (man yum.conf 참조).


특정 리포지토리 만 만료 캐시하는 방법이 있습니까?
myroslav

1
이 작업을 수행하는 유일한 쉬운 방법은 --disablerepo = * --enablerepo = myrepo, otherrepo ...입니다. 별명을 많이 만들면 별명을 만들 수 있습니다.
James Antill

11

Yum 클라이언트의 /etc/yum.conf에 다음 줄을 추가하십시오.

metadata_expire = 1m

다음 명령은 더 많은 정보를 보여줍니다.

남자 yum.conf

참고로 CentOS 5에는 매개 변수가 주석 처리되어 있습니다. CentOS 6.2의 가치는 90m입니다.


이것은 다소 낡았지만 방금 나왔습니다. /etc/yum.repos.d/my.repo 파일을 편집하여 단일 저장소에 대해이 값을 설정할 수 있습니다.
jwm

3

yum clean metadata 캐시 된 이름 만 정리하면 yum은 사용 가능한 항목에 대한 아이디어를 다시로드합니다.


0

같은 문제가 발생했습니다.

clean 모두 청소


1
질문을주의 깊게 읽으십시오. 캐시를 지우지 않아도되는 다른 방법을 찾고 있다고 생각합니다.
slm

신 당신이 너무 옳아 요 : |
jobwat

0

yum 's --enablerepo = localrpmrepo는 옵션입니다. 그래서

yum --enablerepo=localrpmrepo clean metadata

localrpmrepo를 repos 이름으로 바꾸십시오


아니,이 경우 문제는 캐시가 여전히 유효하고 업데이트를 확인하지 않는다고 생각한다는 것입니다.
Falcon Momot

이 문장과 다른 것을 사용하여 하나의 저장소 만 업데이트 할 수있었습니다 yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. 나는 단지 bash 함수를 만들고 그것으로 끝낼 것이다!
bgStack15
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.