테스트 빌드를 설치하는 데 사용하는 로컬 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 저장소에 대해서는 그렇게 할 필요가 없기 때문에 저장소에서 다른 작업을 수행해야 한다는 의미일 뿐입니다.
yum update
Yum 캐시를 정리할 필요 없이 클라이언트에서만 실행하면 되도록 로컬 저장소를 어떻게 설정해야 합니까 ?
답변1
yum에게 저장소를 확인하라고 지시하는 훨씬 더 효율적인 방법인 "yum cleanexpired-cache"를 실행할 수 있습니다. ... 또 다른 방법은 로컬 저장소의 Metadata_expire 값을 변경하는 것입니다. (man yum.conf 참조)
답변2
Yum 클라이언트의 /etc/yum.conf에 다음 줄을 추가해 보세요.
메타데이터_만료=1분
다음 명령은 추가 정보를 보여줍니다.
남자 yum.conf
참고하세요. CentOS 5에는 주석 처리된 매개변수가 있습니다. CentOS 6.2의 값은 90m입니다.
답변3
yum clean metadata
캐시된 이름 등을 정리한 후 yum은 사용 가능한 항목에 대한 아이디어를 다시 로드합니다.
답변4
yum의 --enablerepo=localrpmrepo가 당신이 따르는 옵션입니다. 그래서
yum --enablerepo=localrpmrepo clean metadata
localrpmrepo를 저장소 이름으로 바꾸십시오.