/var/www/html/centos/7
디렉토리에 로컬 저장소가 있습니다. 여기에서는 centos의 모든 rpm 패키지가 다운로드됩니다. 나는 1주일에 한 번씩 로컬 저장소를 업데이트하기 위해 crontab을 만들 것입니다.
이것이 작동하는지 알고 싶습니다 repocreate --update
. 아니면 centos repo에서 모든 패키지를 다시 다운로드해야 합니까?
/centos/7
centos 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를 지원하는 다음 미러를 사용해 볼 수 있습니다.
답변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/