เหตุใดแพคเกจบางอย่างจึงมีตัวเลขเพิ่มเติมก่อนที่เครื่องหมายโคลอนที่ด้านหน้าของสตริงเวอร์ชัน


29

ฉันเพิ่งสังเกตเห็นว่า Wine (และแพ็คเกจอื่น ๆ ) เปลี่ยนรูปแบบการกำหนดเวอร์ชันเป็น:

1:1.6.2-0ubuntu3

ผมเข้าใจทุกอย่างหลังจาก1: ... แต่สิ่งที่ไม่1:หมายถึง?

ดูเหมือนจะไม่ใช่เวอร์ชั่นหลักเลย ดูรายการการอัปเกรดที่รออยู่มีหลายรุ่นเช่น: 2:4.1.3...และมีแพ็คเกจมากมายโดยไม่มี#:คำนำหน้า

เกิดอะไรขึ้น?


ดูเหมือนว่าจะเป็นเฉพาะ Ubuntu, packages.debian.org/sid/wineไม่มีคำนำหน้านี้
Sylvain Pineau

มันใหม่สำหรับ Wine ใน Ubuntu ด้วย (ณ 14.04) แต่แพ็คเกจอื่น ๆ เช่นpython3-uno( ใน Ubuntu และ ใน Debian ) มีคำนำหน้าอย่างสม่ำเสมอ
Oli

แน่นอนฉันได้พบคำตอบสำหรับ superuser
Sylvain Pineau

@Oli ไม่ใช่เรื่องใหม่สำหรับไวน์มันมีอยู่เสมอ แต่เนื่องจากค่าของมันอยู่0ตลอดเวลาจนถึง 14.04 จึงไม่ได้เขียนไว้ในสตริงเวอร์ชัน ดังนั้นคุณสามารถคิดว่าทุกคนที่อุดมสมบูรณ์ของแพคเกจโดยไม่มี#:คำนำหน้า0:ที่พวกเขามีในความเป็นจริง ดูคำตอบที่คุณได้รับเพื่อทำความเข้าใจให้ดีขึ้น
Radu Rădeanu

คำตอบ:


26

จากman deb-version:

NAME
       deb-version - Debian package version number format

SYNOPSIS
       [epoch:]upstream-version[-debian-revision]

DESCRIPTION
       Version  numbers as used for Debian binary and source packages
       consist of three components. These are:

       epoch  This is a single (generally  small)  unsigned  integer.
              It  may  be omitted, in which case zero is assumed.  If
              it is omitted then the upstream-version may not contain
              any colons.

              It is provided to allow mistakes in the version numbers
              of older versions of a package, and  also  a  package's
              previous version numbering schemes, to be left behind.

ดังนั้นที่หมายเลขพิเศษ (ในกรณีของคุณ1) หมายถึงยุคส่วนประกอบที่อาจถูกมองข้ามในกรณีที่เป็น 0 ดังนั้นถ้าคุณเห็นสตริงรุ่นซึ่งมีลักษณะเหมือนที่คุณสามารถคิดว่าในความเป็นจริงมันดูเหมือนว่า1.6.2-0ubuntu3 0:1.6.2-0ubuntu3นี้เป็นวิธีการที่เป็นประโยชน์และวิธีการที่ไม่มา: มันมีไว้เพื่อช่วยให้ข้อผิดพลาดในหมายเลขรุ่นของรุ่นเก่าของแพคเกจและแพคเกจของแผนการก่อนหน้ารุ่นหมายเลขที่จะอยู่ด้านหลังซ้าย เพื่อความเข้าใจที่ดีขึ้นลองดูที่ย่อหน้าที่อธิบายต่อไปนี้จากคู่มือนโยบายเดเบียน - ไฟล์ควบคุมและฟิลด์ของพวกเขา :

เมื่อเปรียบเทียบตัวเลขสองรุ่นแรกยุคของแต่ละจะเปรียบเทียบแล้วupstream_versionถ้ายุคเท่ากับแล้ว debian_revisionถ้าupstream_versionยังมีค่าเท่ากับ ยุคเมื่อเปรียบเทียบเชิงตัวเลข

และ:

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


14

นี่คือยุค มันจะแทนที่เวอร์ชั่นในการพิจารณาว่าแพ็คเกจใดที่ใหม่กว่า

จากdeb-versionหน้าคน:

   epoch  This is a single (generally small) unsigned integer.  It may  be
          omitted,  in  which case zero is assumed.  If it is omitted then
          the upstream-version may not contain any colons.

          It is provided to allow mistakes in the version numbers of older
          versions  of  a  package,  and also a package's previous version
          numbering schemes, to be left behind.

แหล่ง

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