การประชุมรุ่นเดเบียนแพคเกจ


34

ฉันใช้เดเบียน / อูบุนตูและสับสนเกี่ยวกับแพ็คเกจรุ่นต่างๆ เมื่อใช้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แต่ทั้งหมด "สับสน" ในแบบที่ฉันไม่เข้าใจ ฉันหมายถึงแพ็คเกจต่าง ๆ ใช้ข้อกำหนดการตั้งชื่อที่ต่างกันโดยสิ้นเชิง

นี่คือคำถามที่สำคัญ:

  1. เหตุใดบางหมายเลขรุ่นจึงมีubuntuอยู่ในนั้นและบางหมายเลขไม่มี
  2. เครื่องหมายวรรคตอนพิเศษทั้งหมด-~+หมายถึงอะไร
  3. อะไรคือalpha, buildและdfsg? ฉันสามารถใช้มันอย่างตั้งใจได้หรือไม่?
  4. vimและแพคเกจอื่น ๆ 2:ที่มี นั่นหมายความว่าอย่างไร?
  5. "การเปรียบเทียบรุ่น" ทำงานอย่างไรเมื่อรูปแบบเวอร์ชันต่างกันอย่างไร

ใครช่วยอธิบายเรื่องนี้ให้ฉันหน่อยได้ไหม หรือฉันจะหาเอกสารทางการได้ที่ไหน?

ขอบคุณล่วงหน้า.


คุณหมายถึงอะไรที่: "ทำไมจึงมีอูบุนตูในนั้นและไม่มี?"
Ciro Santilli 新疆改造中心法轮功六四事件

1
@ CiroSantilli709 大抓捕六四事件法轮功นั่นคือเหตุผลที่ว่าทำไมบางหมายเลขรุ่นมีคำต่อท้ายที่ประกอบด้วยคำubuntuและบางส่วนไม่
rakslice

คำตอบ:


50

คู่มือนโยบาย Debianนี้จะพูดเกี่ยวฟิลด์รุ่นซึ่งเป็นคำตอบบางส่วนของคำถามของคุณมี:

รูป

รูปแบบคือ: [epoch:]upstream_version[-debian_revision]

สามองค์ประกอบต่อไปนี้คือ:

ยุค

นี่เป็นจำนวนเต็มเดียว (โดยทั่วไปเล็ก) ที่ไม่ได้ลงชื่อ มันอาจถูกละเว้นซึ่งในกรณีนี้จะถือว่าศูนย์ หากไม่ได้ระบุไว้upstream_versionอาจไม่มีเครื่องหมายโคลอนใด ๆ มันมีไว้เพื่อให้ข้อผิดพลาดในหมายเลขรุ่นของแพคเกจรุ่นเก่าและรูปแบบการกำหนดหมายเลขรุ่นก่อนหน้าของแพคเกจจะถูกทิ้งไว้ข้างหลัง

upstream_version

นี่คือส่วนหลักของหมายเลขรุ่น โดยปกติแล้วจะเป็นหมายเลขเวอร์ชั่นของแพ็คเกจดั้งเดิม ("upstream") ซึ่งไฟล์. deb ได้ถูกสร้างขึ้น โดยปกติจะอยู่ในรูปแบบเดียวกับที่ระบุโดยผู้เขียน upstream อย่างไรก็ตามอาจจำเป็นต้องจัดรูปแบบใหม่เพื่อให้พอดีกับรูปแบบของระบบการจัดการบรรจุภัณฑ์และรูปแบบการเปรียบเทียบ

พฤติกรรมการเปรียบเทียบของระบบการจัดการบรรจุภัณฑ์ที่เกี่ยวข้องกับupstream_versionอธิบายไว้ด้านล่าง upstream_versionส่วนหนึ่งของหมายเลขรุ่นมีผลบังคับใช้

upstream_versionอาจมีเพียง Alphanumerics [36] และตัวอักษร"."(หยุดเต็ม), "+"(บวก) "-"(ยัติภังค์) ":"(ลำไส้ใหญ่) "~"(ตัวหนอน) และควรเริ่มต้นด้วยตัวเลข หากไม่มีdebian_revisionจะไม่อนุญาตให้ใช้ขีดกลาง ถ้าไม่มียุคแล้วไม่อนุญาตให้ใช้โคลอน

debian_revision

หมายเลขรุ่นนี้เป็นส่วนหนึ่งระบุรุ่นของแพ็คเกจ Debian ที่ขึ้นอยู่กับรุ่นอัปสตรีม มันอาจจะมีเพียง Alphanumerics และตัวอักษร"."(หยุดเต็ม), "+"(บวก) "~"(ตัวหนอน) และเมื่อเทียบในทางเดียวกันเป็นupstream_versionคือ

มันเป็นตัวเลือก; หากไม่มีอยู่แสดงว่าupstream_versionอาจไม่มียัติภังค์ รูปแบบนี้แสดงถึงกรณีที่ชิ้นส่วนของซอฟต์แวร์ถูกเขียนขึ้นโดยเฉพาะให้เป็นแพ็คเกจ Debian โดยที่แหล่งแพ็กเกจ Debian จะต้องเหมือนกับแหล่งที่เก่าแก่เสมอและไม่จำเป็นต้องมีการแก้ไขตัวบ่งชี้

มันเป็นเรื่องธรรมดาที่จะเริ่มdebian_revisionที่ 1 ใหม่ทุกครั้งที่upstream_versionเพิ่มขึ้น

ระบบการจัดการแพคเกจจะทำลายหมายเลขรุ่นนอกเหนือที่ยัติภังค์สุดท้ายในสตริง (ถ้ามี) เพื่อตรวจสอบupstream_versionและdebian_revision กรณีที่ไม่มีdebian_revisionเทียบเท่ากับdebian_revisionเป็น0

การเปรียบเทียบ

เมื่อเปรียบเทียบหมายเลขรุ่นสองครั้งแรกของแต่ละช่วงจะถูกเปรียบเทียบจากนั้น upstream_version หากยุคมีค่าเท่ากันจากนั้นdebian_revisionหากupstream_versionก็เท่ากัน ยุคเมื่อเปรียบเทียบเชิงตัวเลข ส่วนupstream_versionและdebian_revisionถูกเปรียบเทียบโดยระบบการจัดการบรรจุภัณฑ์โดยใช้อัลกอริทึมต่อไปนี้:

สตริงจะถูกเปรียบเทียบจากซ้ายไปขวา

ขั้นแรกให้เริ่มต้นส่วนแรกของแต่ละสตริงซึ่งประกอบด้วยอักขระที่ไม่ใช่ตัวเลขทั้งหมด สองส่วนนี้ (หนึ่งในนั้นอาจว่างเปล่า) ถูกเปรียบเทียบโดยคำศัพท์ หากพบความแตกต่างจะถูกส่งคืน การเปรียบเทียบคำศัพท์เป็นการเปรียบเทียบค่า ASCII ที่ปรับเปลี่ยนเพื่อให้ตัวอักษรทั้งหมดเรียงลำดับก่อนหน้าไม่ใช่ตัวอักษรทั้งหมดและตัวหนอนจะเรียงลำดับก่อนสิ่งใด ๆ แม้แต่จุดสิ้นสุดของส่วน ยกตัวอย่างเช่นชิ้นส่วนดังต่อไปนี้อยู่ในลำดับที่เรียงลำดับจากที่เก่าแก่ที่สุดล่าสุด: ~~, ~~a, ~, aส่วนที่ว่างเปล่า

จากนั้นจะกำหนดส่วนเริ่มต้นของส่วนที่เหลือของแต่ละสตริงซึ่งประกอบด้วยตัวอักษรทั้งหมด ค่าตัวเลขของทั้งสองส่วนจะถูกนำมาเปรียบเทียบและความแตกต่างใด ๆ ที่พบจะถูกส่งกลับเป็นผลของการเปรียบเทียบ สำหรับวัตถุประสงค์เหล่านี้สตริงว่าง (ซึ่งสามารถเกิดขึ้นได้เมื่อสิ้นสุดหนึ่งหรือทั้งสองสตริงเวอร์ชันที่จะเปรียบเทียบ) นับเป็นศูนย์

สองขั้นตอนเหล่านี้ (การเปรียบเทียบและลบสตริงที่ไม่ใช่ตัวเลขเริ่มต้นและสตริงหลักเริ่มต้น) จะทำซ้ำจนกว่าจะพบความแตกต่างหรือสตริงทั้งสองหมดลง

โปรดทราบว่าจุดประสงค์ของยุคคือเพื่อให้เราสามารถทิ้งความผิดพลาดในการกำหนดหมายเลขเวอร์ชันและเพื่อรับมือกับสถานการณ์ที่รูปแบบการกำหนดหมายเลขเวอร์ชันเปลี่ยนแปลง มันไม่ได้มีจุดประสงค์เพื่อรับมือกับหมายเลขเวอร์ชั่นที่มีสตริงของตัวอักษรซึ่งระบบการจัดการบรรจุภัณฑ์ไม่สามารถตีความ (เช่นALPHAหรือpre-) หรือเรียงลำดับโง่ ๆ

ubuntuจะระบุว่าแพ็คเกจนั้นถูกสร้างขึ้นมาโดยเฉพาะสำหรับ Ubuntu alphaและbuildสตริงดูเหมือนจะไม่ได้มีความหมายใด ๆ โดยเฉพาะ แต่dfsgหมายถึงแพคเกจที่ได้รับการปรับเปลี่ยนเพื่อให้สอดคล้องกับแนวทางการพัฒนาซอฟต์แวร์ Debian ฟรี


1
ขอบคุณสิ่งนี้ช่วยได้มาก แต่การเปรียบเทียบเวอร์ชันทำงานอย่างไร ตัวเลขตัวอักษรและ ~ + ซึ่งมาก่อนและสุดท้าย
cizixs

ฉันได้ขยายคำพูดในคำตอบของฉันเพื่อรวมส่วนของคู่มือที่อธิบายพฤติกรรมการเปรียบเทียบ
Flup

2
มีเครื่องมือออนไลน์ที่ไหนสักแห่งที่ฉันสามารถทดสอบว่าสตริงรุ่นเหล่านี้เรียงลำดับได้อย่างไร
Nick

คุณช่วยวางตัวอย่างที่เหมือนกันได้ไหม ตัวอย่างเช่นการแยกวิเคราะห์เวอร์ชันด้านบนออกเป็นส่วนต่าง ๆ หากทั้งรุ่นต้นน้ำและรุ่นเดเบียนสามารถมี - และ + เราจะทราบได้อย่างไรว่าการแยกอยู่ที่ไหน นอกจากนี้ลิงก์แรกดูเหมือนว่าจะใช้งานไม่ได้
fersarr

@fersarr ฉันจะออกจากตัวอย่างให้ผู้อื่น แต่ฉันได้แก้ไขลิงก์แล้ว
Flup

10

XubuntuY ส่วนหนึ่งของรุ่นเช่น 1ubuntu1

  • Xเป็นรุ่นแพ็คเกจของเดเบียน แพ็คเกจ Ubuntu ส่วนใหญ่ใช้แพ็คเกจเดเบียนซึ่งเป็น distro "อัปสตรีม"

    หาก0นี่หมายความว่าไม่มีแพ็คเกจเดเบียน: มีเฉพาะใน Ubuntu เท่านั้น

    X รีเซ็ตเมื่ออัปเดตเวอร์ชันอัปสตรีมจริงเช่น Binutils 2.25 เป็น Binutils 2.26

    มีรุ่นเดเบียนอยู่เนื่องจาก Debian อาจสร้างแพตช์ให้กับแพ็คเกจเพื่อที่จะทำงานได้ดีขึ้นในระบบ Debian หรือเพื่อความปลอดภัย

    นักพัฒนา Debian มีความกระตือรือร้นในการผสานแพตช์กลับมาเพื่อหลีกเลี่ยงการฟอร์ก

    ทุกครั้งที่มีการติดตั้งชุดข้อมูลใหม่จำนวนนี้จะเพิ่มขึ้น

  • ubuntuY เป็นตัวเลือก

    หากไม่มีอยู่แสดงว่ามีการใช้แพ็คเกจ Debian โดยตรง

    มิฉะนั้นก็หมายความว่านี่เป็นแพทช์ Yth Ubuntu ที่นำมาใช้ด้านบนของแพทช์เดเบียนเหมือนเดเบียนใช้บนต้นน้ำจริง

    Yรีเซ็ตเมื่อXเพิ่มขึ้น

หากคุณได้รับซอร์สของแพ็คเกจด้วย:

apt-get source gdb

คุณจะเห็นแพตช์ที่ใช้โดย Ubuntu และ Debian ที่:

debian/patches/

ที่น่าสนใจยิ่งกว่าคือคุณสามารถโคลนbzrและดูรายการ Ubuntu ทุกเวอร์ชันที่มีการเปลี่ยนแปลงระหว่าง:

bzr branch ubuntu:gdb
cd gdb
bzr log | less

ดูเพิ่มเติมที่: https://askubuntu.com/questions/620533/what-is-the-meaning-of-the-xubuntuy-string-in-ubuntu-package- ชื่อ

สิ่งที่ยุคหมายถึงจริง

https://askubuntu.com/questions/441879/why-do-some-packages-have-extra-numbers-on-the-front-of-their-version-string

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.