로컬 저장소 업데이트

로컬 저장소 업데이트

/var/www/html/centos/7디렉토리에 로컬 저장소가 있습니다. 여기에서는 centos의 모든 rpm 패키지가 다운로드됩니다. 나는 1주일에 한 번씩 로컬 저장소를 업데이트하기 위해 crontab을 만들 것입니다.

이것이 작동하는지 알고 싶습니다 repocreate --update. 아니면 centos repo에서 모든 패키지를 다시 다운로드해야 합니까?

/centos/7centos repo에서 패키지를 다운로드해야 하는 경우 다운로드한 패키지( 제가 언급한 디렉터리에 있음)를 건너뛰고 centos에서 새(업데이트된) 패키지만 다운로드할 수 있는 방법이 있습니까 ?

고쳐 쓰다

해결책을 찾았지만 나에게는 효과가 없습니다. 새 디렉토리 centos7/repo를 만들고 rsync --ignore-existing이 작동하는지 확인하기 위해 일부 파일을 다운로드했습니다. 하지만 다음 명령을 실행할 때마다 오류가 발생합니다.

failed to connect to ftp.linux.org.tr (193.140.100.100): Connection timed out (110)

rsync: failed to connect to ftp.linux.org.tr (2001:a98:11::100): Network is unreachable (101)

rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2]

명령은 다음과 같습니다:

rsync -avz --ignore-existing rsync://ftp.linux.org.tr/centos/7/os/x86_64/ /var/www/html/centos7/repo/

다른 거울도 써봤는데https://centos.org/download/mirrors/(이 사이트에는 rsync 위치도 있습니다). 그러나 그들 중 누구도 작동하지 않습니다. 누군가 rsync 미러가 작동하는지 확인할 수 있나요? 어쩌면 포트 873을 통해 방화벽을 통과하지 못할 수도 있습니다.

어쨌든 포트 80을 통해 이 rsync를 사용할 수 있습니까? 아니면 이를 수행할 수 있는 다른 방법이 있습니까? (zsync를 시도했지만 zsync 파일이 필요합니다.)

답변1

rsync에 문제가 있으면 다음을 사용할 수 있습니다.재동기화. 시스템에 구성된 리포지토리(또는 --newest-only| -n)에서 모든 패키지를 다운로드할 수 있습니다. 따라서 스크립트의 최종 명령은 다음과 같습니다.

/usr/bin/reposync --repoid=updates --download_path=/var/www/html/centos7/repo/updates --newest-only
/usr/bin/createrepo /var/www/html/centos7/repo/updates

답변2

rsync를 지원하는 다음 미러를 사용해 볼 수 있습니다.

http://mirror.nl.leaseweb.net/centos/

답변3

repoquery는 시스템에 대해 구성한 저장소의 모든 패키지를 쿼리한 다음 xargs에 목록을 제공하여 repotrack을 사용하여 모든 패키지(기존 패키지 대신 새 패키지)를 서버에 다운로드합니다.

repoquery -a | xargs repotrack -a x86_64 -p .

rsync 솔루션은 rsync 데몬 포트를 제한하는 방화벽 규칙이 없는 경우에도 작동합니다.

rsync -avz --ignore-existing rsync://ftp.linux.org.tr/centos/7/os/x86_64/ /var/www/html/centos7/repo/

관련 정보