Score:3

ความแตกต่างระหว่าง 'พิน: รีลีส v' และ 'พิน: เวอร์ชัน' ในไฟล์การตั้งค่า apt

ธง cn

ฉันดูเหมือนจะไม่พบสิ่งใดที่เกี่ยวข้องกับความแตกต่างระหว่าง พิน: เวอร์ชั่น 5.8 และ พิน: ปล่อย v=5.8 ในเอกสารสำหรับไฟล์การตั้งค่า apt

พวกเขาทำสิ่งเดียวกันหรือมีความแตกต่าง?

ก็มีความคล้ายคลึงกันเกิดขึ้นระหว่าง พิน: ที่มา "กำเนิด" และ พิน: รีลีส o=กำเนิด.

Terrance avatar
id flag
ดู `man apt_preferences` และ https://help.ubuntu.com/community/PinningHowto
dylanmorroll avatar
cn flag
ฉันได้ดูแล้ว แต่ดูเหมือนจะไม่ตอบคำถามที่ฉันถาม เว้นแต่ฉันจะพลาดอะไรไป
Terrance avatar
id flag
ใน `man apt_preferences` รอบ ๆ บรรทัดที่ 335+ มีคำตอบมากมายที่คุณถาม
Someone avatar
my flag
คำถามของคุณกว้างเกินไป... โปรดแก้ไขให้จำกัดเพียงคำถามเดียวเท่านั้น
dylanmorroll avatar
cn flag
ฉันได้แก้ไขคำถามแล้ว
dylanmorroll avatar
cn flag
@Terrance ฉันเห็นว่าพูดถึงการระบุเวอร์ชันผ่าน `Pin: release v=` แต่ฉันไม่เห็นพูดถึง `Pin: version` เลย
Terrance avatar
id flag
โดยปกติสิ่งที่อยู่ใน `man file` คือสิ่งที่รองรับในการตั้งค่า ฯลฯ อาจไม่รองรับ `Pin: version` อีกต่อไป
N0rbert avatar
zw flag
ยังคงรองรับ `พิน: เวอร์ชัน' เพิ่งทดสอบเมื่อ 21.10. ตรวจสอบ https://wiki.debian.org/AptConfiguration?action=show&redirect=AptPreferences#apt_preferences_.28APT_pinning.29 ด้วย
Score:3
ธง cn

หลังจากขุดเพิ่มเติมฉันก็คิดออก

TL;ดร

พิน: ปล่อย X=Y กรองฟิลด์ของไฟล์ Release โดยใช้เครื่องหมายชวเลข ในไฟล์เผยแพร่ เวอร์ชันควรเป็นเวอร์ชันของ ปล่อย. เช่น) สำหรับ Debian bullseye ที่คุณมี พิน: ปล่อย v=11หรือสำหรับ Ubuntu Jammy ที่คุณสามารถทำได้ พิน: ปล่อย v=22.04. ต้นทางควรเป็นชื่อผู้แต่งหรือผู้ขาย เช่น.) พิน: ปล่อย o=LP-PPA-mozillateam.

ขา: รุ่น X กรองตามเวอร์ชันแพ็คเกจ เช่น.) พิน: รุ่น 1:91.

พิน: origin X กรองตามชื่อโฮสต์ เช่น.) พิน: ต้นทาง ppa.launchpad.net.

ปล่อยไฟล์

ใน การกำหนดเวอร์ชันแพ็คเกจและคุณสมบัติการแจกจ่าย ส่วนของ ผู้ชาย apt_preferences เราพบสิ่งนี้

ตำแหน่งที่แสดงอยู่ในไฟล์ source.list(5) ควรมีไฟล์ Packages และ Release เพื่ออธิบายแพ็คเกจที่มีอยู่ในตำแหน่งนั้น

ดังนั้นแต่ละสถานที่ (ซึ่งมีที่มา) จึงมี ปล่อยไฟล์ สำหรับแต่ละรุ่นที่มีอยู่ในลิงก์นั้น เราเห็นว่าไฟล์เผยแพร่ถูกโฮสต์ไว้ที่ dists/$DIST/ในรีลีส.

ในเครื่องของฉันเรามี

นโยบาย $ apt-cache
 500 http://ppa.launchpad.net/mozillateam/ppa/ubuntu jammy/main แพ็คเกจ amd64
     รีลีส v=22.04,o=LP-PPA-mozillateam,a=jammy,n=jammy,l=Firefox ESR และ Thunderbird รุ่นเสถียร,c=main,b=amd64
     ที่มา ppa.launchpad.net

ที่นี่ คุณจะเห็นว่าเครื่องของฉันกำลังใช้ แจมมี่ ปล่อย. ดังนั้นไฟล์เผยแพร่ที่เกี่ยวข้องจึงอยู่ที่ dists/jammy/InRelease. สิ่งนี้ให้ไฟล์นี้แก่เราที่นี่: http://ppa.launchpad.net/mozillateam/ppa/ubuntu/dists/jammy/InRelease.

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

  • ต้นทาง
  • ฉลาก
  • รุ่น
  • ห้องชุด
  • รหัสชื่อ

และบางฟิลด์ที่ไม่บังคับรวมถึง:

  • ส่วนประกอบ

นี่คือสิ่งที่คุณกรองเมื่อคุณระบุ พิน: ปล่อย X= ในไฟล์การตั้งค่าของคุณ นอกจากนี้ยังมีคำอธิบายเมื่อคุณเรียกใช้ นโยบาย apt-cache. ในตัวอย่างข้างต้น เรามี:

  • ต้นทาง: o=LP-PPA-mozillateam
  • ฉลาก: l=ไฟร์ฟอกซ์ ESR
  • รุ่น: v=22.04
  • ห้องสวีท: a=แจมมี่
  • รหัสชื่อ: n=แจมมี่
  • ส่วนประกอบ: ค=หลัก

หมายเหตุ: ฉันไม่พบสิ่งใดใน man page ที่เกี่ยวข้องกับ ข= ฟิลด์ในเอาต์พุตของ นโยบาย apt-cache สั่งการ.

ต้นทาง

นอกจากข้อมูลข้างต้นในไฟล์เผยแพร่แล้ว สถานที่ยังมีจุดกำเนิดอีกด้วย นี้ยังรวมอยู่ในผลลัพธ์ของ นโยบาย apt-cache สั่งการ. อย่างที่คุณเห็นตัวอย่างด้านบนก็เป็นได้ ppa.launchpad.net.

นี่คือสิ่งที่คุณกรองเมื่อคุณรวม พิน: origin X ในไฟล์การตั้งค่าของคุณ

ใน ผลกระทบของการตั้งค่า APT ส่วนของ man page มีประโยคที่เป็นประโยชน์ดังนี้

ไม่ควรสับสนกับที่มาของการแจกจ่ายตามที่ระบุในไฟล์ Releaseสิ่งที่ตามหลังแท็ก "Origin:" ในไฟล์ Release ไม่ใช่ที่อยู่อินเทอร์เน็ต แต่เป็นชื่อผู้เขียนหรือผู้ขาย เช่น "Debian" หรือ "Ximian"

รุ่น

กลับไป การกำหนดเวอร์ชันแพ็คเกจและคุณสมบัติการแจกจ่าย ส่วนของหน้าคน

ดังได้กล่าวมาแล้วว่า

ตำแหน่งที่แสดงอยู่ในไฟล์ source.list(5) ควรมีไฟล์ Packages และ Release เพื่ออธิบายแพ็คเกจที่มีอยู่ในตำแหน่งนั้น

เช่นเดียวกับไฟล์รีลีสนี้ เรายังมีไฟล์แพ็คเกจด้วย หน้าคนกล่าวต่อไปว่า:

มีเพียงสองบรรทัดในแต่ละบันทึก [ของไฟล์แพ็คเกจ] เท่านั้นที่เกี่ยวข้องกับการตั้งค่าลำดับความสำคัญ APT:

แพคเกจ: สาย

    ระบุชื่อแพ็คเกจ

เวอร์ชัน: line

   ระบุหมายเลขเวอร์ชันสำหรับแพ็คเกจที่มีชื่อ

สิ่งนี้แตกต่างจากที่ระบุไว้สำหรับฟิลด์เวอร์ชันของ ปล่อย ไฟล์ที่มันบอกว่า

เวอร์ชัน: line

   ตั้งชื่อรุ่นที่วางจำหน่าย ตัวอย่างเช่น แพ็กเกจในแผนผังอาจเป็นของ Debian เวอร์ชัน 11

หากเราพบหนึ่งในไฟล์แพ็คเกจเหล่านี้ เราจะเห็นสิ่งนี้ สำหรับแพ็คเกจด้านบน สำหรับสถาปัตยกรรมของฉัน อยู่ที่นี่: http://ppa.launchpad.net/mozillateam/ppa/ubuntu/dists/jammy/main/binary-amd64/Packages.xz

ภายในไฟล์เก็บถาวรที่บีบอัดนั้น เรามีไฟล์ แพ็คเกจ ไฟล์ที่มีรายการแพ็คเกจทั้งหมดที่มีอยู่และเวอร์ชัน (และข้อมูลอื่น ๆ อีกมากมาย) นี่เป็นส่วนหนึ่งของหนึ่งในหลาย ๆ แพ็คเกจที่มีอยู่:

แพ็คเกจ: ธันเดอร์เบิร์ด
ลำดับความสำคัญ: ไม่บังคับ
ส่วน: จดหมาย
ขนาดที่ติดตั้ง: 227239
ผู้ดูแล: ทีม Ubuntu Mozilla <[email protected]>
สถาปัตยกรรม: amd64
เวอร์ชัน: 1:91.5.1+build1-0ubuntu1

รุ่นนี้เป็นสิ่งที่คุณเหมาะสมกว่าเมื่อคุณรวม ขา: รุ่น X ในไฟล์การตั้งค่าของคุณ

หากคุณวิ่ง นโยบาย apt-cache ในแพ็คเกจเฉพาะ คุณสามารถดูเวอร์ชันที่มีสำหรับแพ็คเกจนั้น

ธันเดอร์เบิร์ดนโยบาย $ apt-cache
ธันเดอร์เบิร์ด:
  ติดตั้งแล้ว: 1:78.14.0-1~deb11u1
  ผู้สมัคร: 1:78.14.0-1~deb11u1
  ตารางเวอร์ชัน:
     1:91.5.1+build1-0ubuntu1 500
        500 http://ppa.launchpad.net/mozillateam/ppa/ubuntu jammy/main แพ็คเกจ amd64
     1:91.5.1-1+b2 10
         10 http://ftp.us.debian.org/debian unstable/main แพ็คเกจ amd64
     1:91.5.0-2~deb11u1 500
        500 http://security.debian.org/debian-security bullseye-security/main แพ็คเกจ amd64
 *** 1:78.14.0-1~deb11u1 900
        900 http://deb.debian.org/debian bullseye/main แพ็คเกจ amd64
        100 /var/lib/dpkg/สถานะ

ความสับสนกับเวอร์ชัน

ปรากฏว่าเวอร์ชันที่ระบุในไฟล์เผยแพร่ดูเหมือนจะไม่ถูกต้องเสมอไป ตัวอย่างเช่น สำหรับ Google Chrome เรามีสิ่งนี้:

นโยบาย $ apt-cache
 900 http://dl.google.com/linux/chrome/deb เสถียร/หลัก แพ็คเกจ amd64
     เผยแพร่ v=1.0,o=Google LLC,a=เสถียร,n=เสถียร,l=Google,c=main,b=amd64
     ที่มา dl.google.co.th

ฉันไม่แน่ใจว่าเวอร์ชันนี้ควรจะแสดงถึงอะไร เนื่องจากไม่ตรงกับเวอร์ชันในไฟล์แพ็คเกจ:

$ grep "Package\|เวอร์ชัน" /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages
แพ็คเกจ: google-chrome-เบต้า
เวอร์ชัน: 99.0.4844.17-1
แพ็คเกจ: google-chrome-เสถียร
เวอร์ชัน: 98.0.4758.80-1
แพ็คเกจ: google-chrome-ไม่เสถียร
เวอร์ชัน: 100.0.4867.0-1
muru avatar
us flag
หากสำหรับ Ubuntu 22.04 เป็น `release v=22.04` ดูเหมือนว่าจะเป็นเวอร์ชันแจกจ่าย ไม่ใช่เวอร์ชันแพ็คเกจ ฉันสามารถจินตนาการได้ เช่น บุคคลที่สามสำหรับการเผยแพร่บางอย่าง เช่น Nodejs หรือ PostgreSQL การตั้งค่าหลายช่องทางสำหรับซอฟต์แวร์หลักแต่ละรุ่น และตั้งค่าเวอร์ชันการเผยแพร่ตามนั้น Chrome ไม่มีรุ่นที่วางจำหน่ายในลักษณะนั้น ดังนั้นพวกเขาจึงอาจตั้งค่าจำลองเป็น 1.0

โพสต์คำตอบ

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