두 개의 서로 다른 저장소에 있는 모든 패키지의 버전을 보고 비교하고 싶습니다. 다음과 같은 것 :
libfoo | 1.2 | 1.3 libbar | 2.4 | 3.0 libbaz | ... | ...
그런 웹도 있나요?
아니면 리포지토리의 모든 패키지 버전 목록을 얻어서 스크립트로 비교할 수 있는 방법이 있나요?
사용 사례는 시스템 업그레이드 후 어떤 버전이 변경되는지 알 수 있는 것입니다.
답변1
도구를 사용하세요마디슨다른 배포판의 하나의 패키지 버전 정보(그럼 다른 저장소)
sudo apt-get install devscripts
rmadison [the package name]
예를 들어,
$ rmadison alsa-utils
출력은 [패키지 버전 배포판]과 같습니다.
alsa-utils | 1.0.25-1ubuntu5 | precise | source, amd64, armel, armhf, i386, powerpc
alsa-utils | 1.0.25-1ubuntu5.2 | precise-updates | source, amd64, armel, armhf, i386, powerpc
alsa-utils | 1.0.27.2-1ubuntu2 | trusty | source, amd64, arm64, armhf, i386, powerpc, ppc64el
alsa-utils | 1.0.28-1ubuntu2 | vivid | source, amd64, arm64, armhf, i386, powerpc, ppc64el
alsa-utils | 1.0.29-0ubuntu1 | wily | source, amd64, arm64, armhf, i386, powerpc, ppc64el
아니면 이 웹사이트로 가서 목록을 볼 수도 있습니다.
답변2
답변3
서로 다른 두 저장소의 경우 파일을 비교할 수 있습니다 Packages
. 이 파일은 릴리스 채널( trusty
, trusty-updates
등), 구성 요소( main
, multiverse
등) 및 패키지 유형( binary-amd64
, source
등)에 따라 다릅니다.
일반적으로 다음 위치에서 파일을 찾을 수 있습니다.
/ubuntu/dists/$CHANNEL/$COMPONENT/binary-$ARCH/Packages{,.gz,.bz2,.xz}
대부분의 공식 미러의 루트와 관련됩니다.
예를 들면 다음과 같습니다.http://mirror.cse.iitk.ac.in/ubuntu/dists/precise/main/binary-amd64/Packages.gz
및 에 대해 Packages
관심 있는 파일을 가져온 다음(필요한 경우 압축 해제) 출력을 비교할 수 있습니다 .grep
Package
Version
샘플 코드:
curl -s http://mirror.cse.iitk.ac.in/ubuntu/dists/trusty/main/binary-amd64/Packages.gz | gunzip | grep -E '^(Package|Version)' | awk 'ORS=NR%2?FS:RS {print $2}' > repo-a.txt
curl -s ftp://ftp.iitb.ac.in/distributions/ubuntu/archives/dists/trusty/main/binary-amd64/Packages.gz | gunzip | grep -E '^(Package|Version)' | awk 'ORS=NR%2?FS:RS {print $2}' > repo-b.txt
diff repo-a.txt repo-b.txt