태그 보관물: package-management

package-management

동일한 데비안 패키지의 다른 버전을 비교 업데이트 된 패키지간에

로컬로 설치된 패키지와 업데이트 된 패키지간에 소스 차이를 얻는 방법이 있습니까? 이것은 어떤 부품이 고정, 변경 또는 추가되었는지 정확하게 확인하는 데 유용합니다.

예를 들어, 시스템에 linux-libc-dev 패키지가 설치되어 있고

sudo apt-get update && sudo apt-get upgrade

The following packages will be upgraded:
  linux-libc-dev

업그레이드하기 전에 동일한 패키지의 로컬 버전과 비교하여 정확한 변경 사항을 확인하려고합니다.

우리는 어떻게 할 수 있습니까?



답변

함께 해킹 한 다른 솔루션이 있습니다 : whatchanged .

관심있는 바이너리 패키지의 이름을 유일한 인수로 사용합니다. 최근 SRU를 예로 사용하려면 :

./whatchanged python_papyon

이것이하는 일입니다 :

  1. 업데이트 후보가 있는지 확인하십시오. 없는 경우 종료
  2. 후보가 존재하면 임시 디렉토리를 작성하고 설치된 버전 및 후보에 대한 소스 패키지를 가져옵니다.
  3. debdiff출력과 출력을 stdout과 비교하십시오 (더 읽기 쉬운 방향으로 리디렉션하고 싶을 것입니다)
  4. 임시 디렉토리를 정리하십시오.

소스 검색 중에 잘못 될 수있는 특정 사항을보다 잘 처리해야하고, 흐름 제어가 약간 벗어 났으며, 버전 확인을위한 더 우아한 방법이 있어야하지만 지금까지 제한된 테스트에서는 제대로 작동했습니다. 지금은 빠른 해킹이라고 생각하면 개선이 가장 환영받습니다. bzr 저장소로 푸시하거나 런치 패드 프로젝트를 작성하여 소수의 사람들에게 유용 할 것입니다.

편집 : pastebin에서 썩지 않고 Launchpad 프로젝트 를 시작 했습니다. 을 사용하여 최신 트렁크 버전을 얻을 수 있습니다 bzr branch lp:whatchanged. 버그 를 보고하고 , 분기하고, Perl로 다시 작성하십시오.


답변

Afaik이 이것을 할 수있는 유일한 방법은 소스를 얻고 diff를 당신 자신으로 만드는 것입니다. apt-get으로 패키지를 컴파일하는 데 사용되는 실제 소스를 얻을 수 있습니다. fx :

apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1
diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/

표준 패치 형식으로 모든 파일 간의 모든 차이점을 인쇄합니다.


답변

다음은 UDD 방법 중 하나 일 것입니다 (아마도 최적은 아님) .

릴리스에 대한 풀 업데이트 분기 (Lucid 가정) (가정 가정)에 최신 SRU가 포함되어야합니다.

bzr branch lp:ubuntu/lucid-updates/package_name

최신 개정판에 의해 도입 된 변경 사항을 가져 오십시오 (이 가정은 최신 SRU에 해당함).

bzr diff -c`bzr revno`


답변

패키지 아카이브에서 파일 차이를 보려면 md5sums 파일을 추출하여 정렬 및 비교 한 다음 실제 파일 목록을 좁혀 비교할 수 있습니다.


답변

“정확한”변경 사항은 아니지만 apt-listchanges설치된 버전 이후에 작성된 변경 사항에 대한 변경 사항 항목을 나열합니다.

새 패키지 다운로드를 완료 한 후 설치가 시작되기 전에 단계를 추가하여 작동합니다. 여기에서 각 패키지의 업그레이드 로그 항목이 표시됩니다. 그런 다음 계속하거나 취소 할 수 있습니다. 당신은 그것을 설치할 수 있습니다

sudo apt-get install apt-listchanges

그런 다음 설정

sudo dpkg-reconfigure apt-listchanges


답변