리포지토리 서버에 새 패키지 추가

리포지토리 서버에 새 패키지 추가

저는 CentOS를 사용하고 있습니다. 저장소를 구축하고 여기에 패키지를 넣고 다른 서버에서 테스트했는데 모든 것이 정상입니다.

저장소에 새 패키지를 추가하고 실행할 때:

$ createrepo -v /var/www/html/centos/6.5/updates/x86_64/Packages/

내 저장소를 추가한 서버에서 최근에 추가된 마지막 패키지를 설치하려고 시도했지만 동일한 서버에서 이 작업을 수행할 때까지는 작동하지 않았습니다.

$ yum clean all

이게 정상인가요?

답변1

지금까지 이것은 "정상적인" 동작이며 "yum update"를 호출하는 서버는 저장소에 사용 가능한 패키지의 캐시를 유지합니다. "yum clean all"을 호출하면 이 캐시가 삭제되고 서버는 방금 추가한 패키지를 포함하여 사용 가능한 패키지 목록을 저장소에 다시 요청해야 합니다.

실제로 무슨 일이 일어났는가

  1. 시스템 A의 저장소에 새 패키지를 추가합니다.
  2. createrepo를 호출하면 저장소 정보가 업데이트되었습니다.
  3. 머신 A의 리포지토리가 포함된 서버 B로 이동합니다.
  4. B에서 "yum update"를 호출합니다. yum이 마지막으로 실행된 것은 그리 오래되지 않았기 때문에 yum은 A에 연결하지 않고(!) 로컬 캐시만 확인합니다. 왜냐하면 로컬 캐시가 몇 시간 오래되었기 때문입니다. 귀하의 새 패키지는 거기에 나열되지 않습니다
  5. 이제 불안하니까 B에서 "yum clean all"을 누르세요. [잠시 기다려도 됩니다.]
  6. B의 모든 캐시가 삭제됩니다.
  7. B에서 "yum update"를 다시 호출하면 B가 강제로 서버에 연결되어 현재 데이터를 모두 가져와 새 패키지를 볼 수 있게 됩니다.

답변2

이것은 나에게 올바른 행동처럼 들리지 않습니다. YUM에서 다운로드한 RPM은 /var/cache/yum.

Fedora 19 시스템에서:

$ pwd
/var/cache/yum

모든 디렉토리를 기록해 두십시오. 각 저장소마다 하나씩 있습니다.

$ tree . -L 3 -d
.
`-- x86_64
    `-- 19
        |-- fedora
        |-- fedora-debuginfo
        |-- google-chrome
        |-- home_pstavirs_ostinato
        |-- home_tpokorra_mono
        |-- livna
        |-- livna-debuginfo
        |-- rpmfusion-free
        |-- rpmfusion-free-debuginfo
        |-- rpmfusion-free-updates
        |-- rpmfusion-free-updates-debuginfo
        |-- rpmfusion-nonfree
        |-- rpmfusion-nonfree-debuginfo
        |-- rpmfusion-nonfree-updates
        |-- rpmfusion-nonfree-updates-debuginfo
        |-- rpm-sphere
        |-- updates
        |-- updates-debuginfo
        `-- virtualbox

21 directories

관련 정보