ใน Gentoo ความแตกต่างระหว่าง amd64, ~ amd64 และ ~ amd64-linux คืออะไร?


9

เมื่อฉันวิ่งequery depgraph www-client/chromium-10.0.648.151ไม่มีการอ้างอิงทั้งหมดที่มีอยู่ แสดงให้เห็นว่าบางคนในขณะที่การแสดงอื่นM[package.mask] ๆ บางส่วน [missing keyword]ฉันACCEPT_KEYWORDSเป็นไปตาม~amd64-linux emerge --infoฉันทดลองกับACCEPT_KEYWORDSตัวแปรที่แตกต่างกัน(ซึ่งเป็นตัวแปรสภาพแวดล้อมที่ส่งผ่านไปยังeqeury) และทุกคนมีการพึ่งพาที่แตกต่างกัน ในบรรดาชุดค่าผสมที่เป็นไปได้ทั้งหมดที่มีเฉพาะการACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'อ้างอิงทั้งหมดสามารถทำได้ในครั้งเดียว

นี่คือคำถามของฉัน:

  1. คือACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'การกำหนดค่าที่ถูกต้อง?
  2. ฉันเรียนรู้จากเอกสารที่amd64หมายถึงความเสถียรและ ~amd64ความไม่แน่นอน เกี่ยวกับ~amd64-linuxอะไร
  3. ถ้าผมเลือก~amd64, equeryจะไม่ใช้แพคเกจที่มีอยู่เท่านั้นที่จะ amd64มีผลในการอ้างอิงที่ขาดหายไป คาดหวังหรือไม่ ถ้าเป็นเช่นนั้นผู้ทดสอบที่ไม่เสถียรควรใช้อย่างน้อยACCEPT_KEYWORDS='amd64 ~amd64'แทนที่จะเป็นACCEPT_KEYWORDS='~amd64'?
  4. ลำดับของคำหลักมีความสำคัญหรือไม่

ข้อมูลเพิ่มเติม: ฉันติดตั้งคำนำหน้า Gentoo ตามคู่มือนี้ โดยค่าเริ่มต้น $EPREFIX/etc/make.profileเป็น symlink ไป$EPREFIX/usr/portage/profiles/prefix/linux/amd64และมีที่มีmake.defaults ACCEPT_KEYWORDS="-amd64 ~amd64-linux"ทั้ง$EPREFIX/etc/make.confมิได้$EPREFIX/etc/make.globalsมีACCEPT_KEYWORDSการกำหนดค่า ตามeselect profile listรายละเอียดไม่ได้เลือก

คำตอบ:


8

1. ACCEPT_KEYWORDS = 'amd64 ~ amd64 ~ amd64-linux' เป็นค่าที่ถูกต้องหรือไม่

จากคน make.conf:

ACCEPT_KEYWORDS = [รายการที่คั่นด้วยช่องว่างของ KEYWORDS]

ดังนั้นACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'การรวมกันที่ถูกต้องคือ

2. แล้ว amd64-linux ล่ะ?

amd64-linuxเป็นสิ่งที่นำหน้า ฉันไม่รู้อะไรมากเกี่ยวกับคำนำหน้า แต่ฉันเห็นได้amd64-linuxในรายการคำหลักที่ถูกต้องที่/usr/portage/profiles/arch.listในส่วนชื่อ "คำหลักคำนำหน้า" เป็นเพียงคู่ของการทดสอบ~amd64-linuxamd64-linux

3. ACCEPT_KEYWORDS='amd64 ~amd64'vs just~amd64

หากคุณมี~amd64อยู่พอACCEPT_KEYWORDSร์เทจจะใช้ ebuilds ล่าสุดทั้งหมดซึ่งมักจะมีสิ่งที่ไม่แน่นอนมากมาย ฉันคิดว่านั่นเป็นสาเหตุที่ต้องมีการพึ่งพาที่ขาดหายไป ตัวอย่างเช่นอาจเกิดขึ้นได้หากคุณต้องการติดตั้งsoftware-aและสิ่งล่าสุดในสาขาการทดสอบคือsoftware-a-2.3.4สิ่งที่ต้องการlibrary-b-5.6.7ซึ่งยังไม่มี ebuild เกี่ยวกับamd64 ~amd64และเพียงแค่~amd64พวกเขาเหมือนกันจริงๆเพราะถ้าคุณคือสถาปัตยกรรม AMD64 คุณจะมีamd64ในACCEPT_KEYWORDSไม่ว่าสิ่งที่

4. ลำดับของคำหลักมีความสำคัญหรือไม่

ไม่เพราะACCEPT_KEYWORDSตัวแปรของคุณมีคำหลักบางคำหรือไม่ มันเหมือนชุด (ไม่ได้สั่ง)

มีการใช้ Gentoo ในขณะที่ผมยังไม่ได้มีความกล้าที่จะใส่ในของฉัน~amd64 ACCEPT_KEYWORDSมันไม่เสถียรดังนั้นจึงไม่แนะนำจริงๆตั้งค่าเป็นครั้งแรกรับประกันความเสียหายมากมาย


ขอบคุณสำหรับคำอธิบายที่ชัดเจนมาก ในกรณีของฉันฉันยังคงมีที่จะใส่ใน ~ amd64 xtables-addonsที่จะได้รับล่าสุด แต่เนื่องจากกล่อง Gentoo ฉันทำหน้าที่เป็นไฟร์วอลล์บริสุทธิ์ผมไม่ได้กังวลจริงๆของแพคเกจอื่น ๆ เสถียรภาพ :)
pepoluan

2
@epoluan หากคุณ~amd64มีxtables-addonsแล้วคุณควรใส่ไว้ใน/etc/portage/package.keywordsหรือ/etc/portage/package.accept_keywordsแทนที่จะใช้สาขาการทดสอบที่ไม่เสถียร สำหรับข้อมูลเพิ่มเติมอ้างถึงman portageหรือถามที่นี่ในคำถามอื่น
phunehehe

เอ้ยคุณพูดถูก> <... ฉันขอโทษดูเหมือนว่าฉัน n00bness ส่องผ่าน: P ... ยังไงก็ตามฉันไม่ได้เป็นโปสเตอร์ต้นฉบับเพียงแค่ผู้แสดงความคิดเห็นเอาแต่ใจ :)
pepoluan

@epoluan ดีใจที่ฉันช่วย ทุกคนเป็น Noob ในบางจุด :)
phunehehe

ขอบคุณสำหรับคำตอบโดยละเอียดของคุณ ฉันไม่เข้าใจว่าทำไม แต่คำหลักเริ่มต้นคือ~amd64-linux( amd64ลบออกอย่างชัดเจน) จนถึงตอนนี้มันทำงานได้ดี =)
netvope

3

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

เครื่องหมาย ~ ด้านหน้าโค้งหมายถึงไม่เสถียร (ไม่ผ่านการทดสอบ "สมบูรณ์")

วิธีที่ดีกว่าคือการใช้ /etc/portage/package.keywords และแสดงรายการแพ็กเกจในนั้นด้วยคีย์เวิร์ด ~ amd64 หากคุณต้องการบิวด์ล่าสุด

โดยวิธีการ: ไฟร์วอลล์ amd64 นั่นไม่ใช่วิธีที่วิกิพีเดียกำหนด overkill?

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