Yum 저장소를 정리하는 가장 좋은 방법은?


10

개발자가 빌드 할 사용자 지정 Yum 저장소가 있습니다.

문제는 시간이 지나면 이전 버전으로 어수선해진다는 것입니다.

이전 버전을 수동으로 제거하는 것은 상당히 성가 시므로 직접 자동화하려고 시도하기 전에 버전 (기본 설정) 또는 업로드 시간을 기준으로 이전 RPM을 정리하는 스크립트가 있는지 궁금합니다.

X 마지막 버전을 간단히 저장하고 다른 것을 지우도록 지정할 수 있다면 가장 좋습니다. 그런 다음 우리는 그것을 cron하고 매일 실행하도록 할 수 있습니다.

어떤 아이디어 주셔서 감사합니다.


스크립트가 없으면 있어야합니다. 우리는 회사에서 사용하기 위해 하나를 썼지 만 가능하면 이것을 야생으로 공개하는 것에 대해 보게 될 것입니다.
Andrew M.

훌륭합니다-오픈 소스 가능하다면 감사하겠습니다. github에 게시하면 훌륭한 아이디어가 될 것입니다.
SyRenity

답변:


13

"간단한"방법은 디렉토리의 모든 것을 덤프하고 실행하는 것입니다.

rm $(repomanage --keep=2 --old /path/to/repo)
createrepo /path/to/repo

... 더 복잡한 방법은 koji 등을 설정하는 것입니다. 빌드를 수행하고 repos를 작성하십시오.


쿨-내가 정확히 필요한 것.
SyRenity

위대한 것들, 이것에 대해
몰랐다

기술적으로 는 제거 할 오래된 RPM이없는 경우 xargs얻을 수 있으므로 대신 함께 사용해야합니다 rm: missing operand. 그래서 :repomanage --keep=2 --old /path/to/repo | xargs rm -f
다닐라 Vershinin

xargs를 사용하는 이유 rm $(repomanage --keep=2 --old /path/to/repo)는 최대 명령 길이를 쉽게 초과 할 수 있기 때문 입니다. xargs거대한 논쟁의 목록을 처리합니다. 참조 : offbytwo.com/2011/06/26/things-you-didnt-know-about-xargs.html
shrewmouse

1

yum-utils RPM에서 "repomanage"유틸리티를 확인하십시오. 원하는 것을 정확하게 수행합니다.

[root ~]# repomanage --help
usage:
  repomanage: manage a directory of rpm packages. returns lists of newest
            or oldest packages in a directory for easy piping to xargs
            or similar programs.
  repomanage [--old] [--new] path.


  options:
    -h, --help            show this help message and exit
    -o, --old             print the older packages
    -n, --new             print the newest packages
    -s, --space           space separated output, not newline
    -k KEEP, --keep=KEEP  newest N packages to keep - defaults to 1
    -c, --nocheck         do not check package payload signatures/digests
[root ~]#

0

빌드를 식별하는 데 사용하는 버전 관리 또는 레이블링 시스템을 활용합니다. 리포지토리를 호스팅하는 서버에서 실행되는 스크립트를 사용하여 날짜별로 패키지를 식별 할 수도 있습니다.


파일 이름에서 버전을 확인한다는 의미입니까? 이것은 내 생각의 선이지만 자동 스크립트를 작성하는 것이 좋습니다.
SyRenity

1
또한 파일 이름이 반드시 버전을 나타내는 것은 아닙니다. 즉, RPM을 원하는 이름으로 바꿀 수 있습니다. yum은 RPM의 메타 데이터를 대신 사용합니다.
Andrew M.

0

업로드가 매일 발생하는 경우 액세스 / 수정 시간 측면에서 특정 일 수보다 오래된 오래된 파일을 삭제하는 것을 고려해보십시오. 찾아서 삭제하십시오. 개발자가 업로드 할 때 현재 달의 이름을 파일 이름에 넣는 빌드를 업로드하도록 할 수 있다면 파일 이름에서 파일이 이른 달에 업로드되었다는 것이 합리적이며 삭제하는 것이 합리적입니다. 파일 이름을 보는 기준으로. 스크립트 자동화를 통해 해당 파일 제거를 고려하거나 이전 달 및 현재 달과 일치하는 파일을 유지하는 것이 쉬울 것입니다. 그냥 생각이야

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.