데비안 / 우분투를 사용하고 있으며 패키지 버전에 대해 혼란스러워합니다. dpkg -l
명령을 사용할 때 나는 얻는다 :
ii vim 2:7.3.429-2ubuntu2.1 Vi IMproved - enhanced vi editor
ii vim-common 2:7.3.429-2ubuntu2.1 Vi IMproved - Common files
ii vim-runtime 2:7.3.429-2ubuntu2.1 Vi IMproved - Runtime files
ii vim-tiny 2:7.3.429-2ubuntu2.1 Vi IMproved - enhanced vi editor - compact version
ii virt-what 1.11-1 detect if we are running in a virtual machine
ii w3m 0.5.3-5ubuntu1 WWW browsable pager with excellent tables/frames support
ii watershed 6 reduce superfluous executions of idempotent command
ii wget 1.13.4-2ubuntu1 retrieves files from the web
ii whiptail 0.52.11-2ubuntu10 Displays user-friendly dialog boxes from shell scripts
ii whoopsie 0.1.33 Ubuntu crash database submission daemon
ii wimlib9 1.5.0-1~webupd8~precise Library to extract, create, modify, and mount WIM files
ii wimtools 1.5.0-1~webupd8~precise Tools to extract, create, modify, and mount WIM files
ii wireless-tools 30~pre9-5ubuntu2 Tools for manipulating Linux Wireless Extensions
ii wpasupplicant 0.7.3-6ubuntu2.1 client support for WPA and WPA2 (IEEE 802.11i)
ii x11-common 1:7.6+12ubuntu2 X Window System (X.Org) infrastructure
ii x11-utils 7.6+4ubuntu0.1 X11 utilities
ii xauth 1:1.0.6-1 X authentication utility
ii xbitmaps 1.1.1-1 Base X bitmaps
ii xclip 0.12-1 command line interface to X selections
ii xfonts-encodings 1:1.0.4-1ubuntu1 Encodings for X.Org fonts
ii xfonts-utils 1:7.6+1 X Window System font utility programs
ii xkb-data 2.5-1ubuntu1.3 X Keyboard Extension (XKB) configuration data
ii xml-core 0.13 XML infrastructure and XML catalog file support
rc xpdf 3.02-21build1 Portable Document Format (PDF) reader
ii xterm 271-1ubuntu2.1 X terminal emulator
ii xz-lzma 5.1.1alpha+20110809-3 XZ-format compression utilities - compatibility commands
ii xz-utils 5.1.1alpha+20110809-3 XZ-format compression utilities
ii zabbix-agent 1:1.8.11-1 network monitoring solution - agent
ii zlib1g 1:1.2.3.4.dfsg-3ubuntu4 compression library - runtime
ii zlib1g-dev 1:1.2.3.4.dfsg-3ubuntu4 compression library - development
ii zsh 4.3.17-1ubuntu1 shell with lots of features
세 번째 열은입니다 만 version
, 이해할 수없는 방식으로 모두 “지워졌습니다”. 다른 패키지는 완전히 다른 이름 지정 사양을 사용한다는 의미입니다.
주요 질문은 다음과 같습니다.
- 일부 버전 번호는 왜 포함
ubuntu
되어 있습니까? - 모든 특수 구두점
-~+
은 무엇을 의미합니까? - 무엇
alpha
,build
그리고dfsg
? 그냥 부담없이 사용할 수 있습니까? vim
그리고 다른 패키지가 있습니다2:
. 그게 무슨 뜻이야?- 버전 형식이 매우 다른 경우 “버전 비교”는 어떻게 작동합니까?
누구든지 나에게 이것을 설명해 주시겠습니까? 아니면 공식 문서를 어디서 찾을 수 있습니까?
미리 감사드립니다.
답변
데비안 정책 안내서 (Debian Policy Manual) 질문의 일부에 응답 버전 필드에 대한 대답이있다 :
체재
형식은 다음과 같습니다.
[epoch:]upstream_version[-debian_revision]
여기에 세 가지 구성 요소가 있습니다.
시대
이것은 부호없는 단일 정수 (일반적으로 작은 정수)입니다. 생략 될 수 있으며,이 경우 0이 가정됩니다. 생략하면 upstream_version에 콜론이 포함되지 않을 수 있습니다. 이전 버전의 패키지 버전 번호와 패키지의 이전 버전 번호 체계에서 실수를 남길 수 있도록 제공됩니다.
업스트림 _ 버전
버전 번호의 주요 부분입니다. 해당되는 경우 일반적으로 .deb 파일이 만들어진 원본 ( “업스트림”) 패키지의 버전 번호입니다. 일반적으로 이것은 업스트림 작성자가 지정한 형식과 동일합니다. 그러나 패키지 관리 시스템의 형식 및 비교 체계에 맞게 다시 포맷해야 할 수도 있습니다.
upstream_version에 대한 패키지 관리 시스템의 비교 동작은 아래에 설명되어 있습니다. 버전 번호 의 upstream_version 부분은 필수입니다.
upstream_version는 영숫자 [36] 상기 문자 함유 할 수있다
"."
(마침표)"+"
(플러스),"-"
(하이픈)":"
(결장),"~"
(틸드)과 숫자로 시작한다. debian_revision 이 없으면 하이픈이 허용되지 않습니다. 에포크 가 없으면 콜론이 허용되지 않습니다.debian_revision
버전 번호의이 부분은 업스트림 버전을 기반으로 데비안 패키지의 버전을 지정합니다. 영숫자와 문자
"."
(완전 정지),"+"
(플러스),"~"
(물결표) 만 포함 할 수 있으며 upstream_version 과 같은 방식으로 비교됩니다 .선택 사항입니다. 존재하지 않으면 upstream_version 은 하이픈을 포함하지 않을 수 있습니다. 이 형식은 소프트웨어가 데비안 패키지로 특별히 작성된 경우를 나타냅니다. 데비안 패키지 소스는 항상 원래 소스와 동일해야하므로 개정 표시가 필요하지 않습니다.
upstream_version 이 증가 할 때마다 1 에서 debian_revision 을 다시 시작하는 것이 일반적 입니다.
패키지 관리 시스템은 문자열의 마지막 하이픈 (있는 경우)에서 버전 번호를 구분하여 upstream_version 및 debian_revision 을 결정합니다 . debian_revision 이 없으면 0 의 debian_revision 과 같습니다 .
비교
두 버전 번호를 비교하면, 각각의 제 에포크를 비교, 에포크 동일하고이면 upstream_version debian_revision 경우 upstream_version는 또한 동일하다. 에포크는 수치 적으로 비교됩니다. upstream_version 및 debian_revision 부분은 다음과 같은 알고리즘을 사용하여 패키지 관리 시스템 비교 :
문자열은 왼쪽에서 오른쪽으로 비교됩니다.
먼저 숫자가 아닌 문자로 구성된 각 문자열의 초기 부분이 결정됩니다. 이 두 부분 (하나는 비어있을 수 있음)은 어휘 적으로 비교됩니다. 차이가 발견되면 리턴됩니다. 어휘 비교는 모든 문자가 모든 비 문자보다 먼저 정렬되고 물결표가 부분의 끝 부분까지 정렬되도록 수정 된 ASCII 값의 비교입니다. 예를 들어, 다음과 같은 부분이 초기부터 최근에 정렬 된 순서에 :
~~
,
~~a
,~
, 비어있는 부분a
.그런 다음 완전히 숫자로 구성된 각 문자열의 나머지 부분이 결정됩니다. 이 두 부분의 숫자 값이 비교되고 발견 된 차이가 비교 결과로 반환됩니다. 이러한 목적을 위해 빈 문자열 (비교되는 하나 또는 두 버전 문자열의 끝에서만 발생할 수 있음)은 0으로 계산됩니다.
차이가 발견되거나 두 문자열이 모두 소모 될 때까지이 두 단계 (초기 비 숫자 문자열과 초기 숫자 문자열 비교 및 제거)가 반복됩니다.
에포크 (epoch)의 목적은 버전 넘버링에서 실수를 버리고 버전 넘버링 체계가 변경되는 상황에 대처할 수 있도록하는 것입니다. 패키지 관리 시스템이 해석 할 수없는 (예 :
ALPHA
또는pre-
) 문자열을 포함하는 버전 번호 또는 어리석은 순서 로 처리하지 마십시오 .
ubuntu
패키지가 우분투를 위해 특별히 제작되었음을 나타냅니다. alpha
및 build
문자열은 특별한 의미를 갖고있는 것 같다,하지만하지 않는 dfsg
한 패키지를 의미 수정 을 준수 데비안 자유 소프트웨어 가이드 라인 .
답변
XubuntuY
버전의 일부 예 : 1ubuntu1
-
X
데비안 패키지 버전입니다. 대부분의 우분투 패키지는 “업스트림”배포판 인 데비안 패키지를 기반으로합니다.인 경우
0
데비안 패키지가 없음을 의미합니다. 우분투에만 존재합니다.X
실제 업스트림 버전이 업데이트되면 재설정됩니다 (예 : Binutils 2.25에서 Binutils 2.26으로).데비안 버전은 데비안이 패키지를 패치하여 데비안 시스템이나 보안 릴리스에서 더 잘 작동 할 수 있기 때문에 존재합니다.
데비안 개발자는 물론 포크를 피하기 위해 패치를 다시 병합하는 데 관심이 있습니다.
새로운 세트 패치가 작성 될 때마다이 수가 증가합니다.
-
ubuntuY
선택 사항입니다.없으면 데비안 패키지가 직접 사용 된 것입니다.
그렇지 않으면, 데비안이 실제 업스트림 위에 적용되는 것과 마찬가지로 데비안 패치 위에 적용되는 Yth Ubuntu 패치입니다.
Y
X
증가 하면 재설정합니다 .
다음과 같은 패키지 소스를 얻는 경우 :
apt-get source gdb
우분투와 데비안이 적용한 패치는 다음과 같습니다 :
debian/patches/
더 흥미로운 bzr
것은 모든 우분투 버전을 복제하여 그 사이에 변경된 내용을 볼 수 있다는 것입니다.
bzr branch ubuntu:gdb
cd gdb
bzr log | less
Epoch가 실제로 나타내는 것